"Курица или яйцо" с точки зрения айтишника

Аватар пользователя Дровосек

По мотивам статьи

Про брадобрея, неопределенные вопросы математикам

Хочу предложить поразмышлять над старым вопросом, но с точки зрения современного опыта.

И так, перефразирую вопрос в более современную его интерпретацию

"Что раньше появилось компилятор или язык программирования?"

Айтишников здесь много - прошу высказаться.

С моей точки зрения - вопрос столь же бессмысленный как и про курицу с яйцом. И является ещё одним примером постановки задачи в отрыве от контекста.

Авторство: 
Авторская работа / переводика

Комментарии

Аватар пользователя wolkwww
wolkwww(11 лет 12 месяцев)

Вообще-то первыми были трансляторы с языка Ассемблер

Аватар пользователя Stan Miller
Stan Miller(4 года 6 месяцев)

smile9.gif

Аватар пользователя marcusvii
marcusvii(4 года 2 месяца)

Не - первыми были перфокарты, если речь о боле-менее вменяемых вычислительных машинах, т.е. по сути первым был машинный код - а потом уже появились инструменты разработки.

Аватар пользователя AndreyTemp
AndreyTemp(9 лет 4 месяца)

а застал чела кто ЕС в маш кодах кодил

Аватар пользователя yva
yva(8 лет 1 месяц)

У меня на втором, кажется, курсе давали пару раз задачи - написать небольшую процедуру в машинных кодах 8086 процессора. Даже не на ассемблере, надо было именно вручную накидать коды. Вполне себе осмысленное упражнение в процессе изучения. Это примерно 94-й год.

Аватар пользователя jaff_13
jaff_13(12 лет 6 месяцев)

легко. В 9-м классе.

В студенчестве кодил на машкодах д3-28 - надо было эксперимент автоматизировать. Потом даже редактор текста накодил - когда к ней принтер с дисплеем докупили.

Аватар пользователя wolkwww
wolkwww(11 лет 12 месяцев)

Не перфокарты, а перфоленты и на них записан был двоичный код.

И вообще это просто способ ввода инфы в комп. Вопрос был в другом

Аватар пользователя yva
yva(8 лет 1 месяц)

Перфокарта - просто носитель данных, функционально она не отличается от флэшки. На ней может быть как программный код, так и любые другие данные.

Аватар пользователя algol
algol(8 лет 2 месяца)

Учим историю.

1843: Машинный алгоритм Ады Лавлейс
Ада Лавлейс изобретает первый в истории машинный алгоритм для разностной машины Чарльза Бэббиджа, который закладывает основу для всех языков программирования.

1944-45: Планкалкюль
Где-то между 1944-45 годами Конрад Цузе разработал первый «настоящий» язык программирования под названием Plankalkül (Расчет плана). Язык Zeus (помимо прочего) позволял создавать процедуры, в которых хранятся фрагменты кода, которые можно было вызывать снова и снова для выполнения рутинных операций.

1949: Язык Ассемблера
Ассемблер использовался в автоматическом калькуляторе с электронным запоминанием задержки (EDSAC). Ассемблер был разновидностью низкоуровневого языка программирования, который упростил язык машинного кода. Другими словами, конкретные инструкции, необходимые для работы с компьютером.

1949: Shortcode
Шорткод (или сокращенный код) был первым языком высокого уровня (HLL), предложенным Джоном Макколи в 1949 году. Однако именно Уильям Шмитт реализовал его для компьютера BINAC в том же году и для UNIVAC в 1950 году.

Создание первого компилятора.


1952: Автокодирование
Автокод был общим термином, используемым для семейства языков программирования. Autocode, впервые разработанный Аликом Гленни для компьютера Mark 1 в Университете Манчестера, был первым в истории скомпилированным языком, который был реализован, что означает, что он может быть переведен непосредственно в машинный код с помощью программы, называемой компилятором. Автокод использовался на первых вычислительных машинах Ferranti Pegasus и Sirius в дополнение к Mark 1.

Аватар пользователя jaff_13
jaff_13(12 лет 6 месяцев)

Учим историю.

1843: Машинный алгоритм Ады Лавлейс

учим историю:

"...БРАЗМ построить никак не получалось. Бэббидж как бы и не совсем виноват - машина сама не хотела, - но тогдашнее общество не было так же приучено к субъектности машин, как нынешнее. Слава Бэббиджа поменялась с "многообещающего ученого" на "слишком много обещающего". Лично для него это была трагедия. От которой он поехал лечиться по Европам и приехал в Санкт-Петербург аккуратно в 1832 году.

Из Санкт-Петербурга Бэббидж вернулся в Англию в 1833-м. В холодной и немытой России он внезапно охладел к своей возлюбленной БРАЗМ и заразился желанием построить новую машину, управляемую перфокартами. Этой хворью Бэббидж страдал остаток своей долгой жизни - до 1871 года.

Каким новым "новичком" отравили Бэббиджа в России? Программой....."

"... Итог: в 1833 году Бэббидж начал строить машину, сердцем которой стала программа.

Но авторство первой программы почему-то присуждают его единственной последовательнице, которая переводила его же лекции в 1843 году и только добавила туда пример программы, показывающий работу машины, построенной только через 100 лет (1946, ЭНИАК).

Где логика, спросите вы? Почему заслуги изобретателя присваивают его помощнице?

А не надо было вам, Бэббидж, ездить в эту токсичную Россию, становиться членом Санкт-Петербургской академии наук, да ещё в знаменательный 1832 год, когда оная академия рассматривала доклад "Новый способ записи мысли для обработки умственной машиной". Не надо было держать в руках чертежи "умственной машины" и читать про таблицы сведений на перфокартах. Не надо было ходить по коридорам русской академии, где можно было столкнуться с тем токсичным русским, который в одиночку создал свою умственную машину. Не надо было так откровенно передирать название его машины, наконец.

Это все крайне неприлично и очень неприятно. Поэтому первой программисткой вместо вас, Бэббидж, назначаем слабую беззащитную женщину, брошенную отцом лордом Байроном (зато знаменитый поэт и дружил с гомосексуалистами), умершую молодой от рака. Жалко. Жалко, что она не была негритянкой, но нельзя всегда получать то, что хочешь (but if you try sometimes и тд. Возможно, мы ещё узнаем что-то новое о происхождении Байрона, вон Пушкин же смог (иметь предков из Африки))...."

Короче: Семён Николаевич Корсаков

Аватар пользователя дзядзька Хведар

Вообще-​то первыми были трансляторы с языка Ассемблер

первыми были переключатели на пульте кампутера

посмотрите на досуге как выглядели первые эвм 

Аватар пользователя wolkwww
wolkwww(11 лет 12 месяцев)

Блин! Откуда вы, знатоки, понабежали? Вопрос ТС задал компилятор или язык. Так вот я ответил, что человечки создали сначала тупой транслятор, прежде чем додумались до компиляции. А применить понятие "язык программирования" к Ассемблеру нельзя. Это мнемоника командных кодов процессора - МНЕМОНИКА.

Аватар пользователя дзядзька Хведар

Вопрос ТС задал компилятор или язык.

1 вначале были переключатели в ручную 

2 потом появились перфокарты 

3 - это была эпоха МЫШИНЫХ КОДОВ!

4 - а потом мышиные коды обьеденили в языки программирования

Аватар пользователя Escander
Escander(6 лет 5 месяцев)

 первый транслятор писали машкодами

Аватар пользователя wolkwww
wolkwww(11 лет 12 месяцев)

Я и ответил, что про компиляторы ещё не мечтали. Транслятор из мнемоники в коды и назывался транслятором Ассемблера.

Аватар пользователя senbonzakura
senbonzakura(7 лет 1 месяц)

а смысл этой статьи какой?

очевидно что язык - его можно создать и без компилятора, описательно.

Аватар пользователя Дровосек
Дровосек(6 лет 7 месяцев)

А какой смысл в языке (программирования) для которого нет компилятора. Ну или интерпретатора если уж совсем занудствовать?

Аватар пользователя senbonzakura
senbonzakura(7 лет 1 месяц)

теоретическая разработка языка для определенного круга задач или исправление недочетов существующих языков, как вариант

Аватар пользователя yva
yva(8 лет 1 месяц)

Какой смысл - это уже другой вопрос. Смысл вполне есть - например, есть всякие псевдокоды для описания алгоритмов, интуитивно вполне понятные, но для которых никто не делает компиляторов.

Аватар пользователя Vovan220
Vovan220(6 лет 6 месяцев)

Здесь все просто : "Сначала было слово". Сначала появилась идея, как облегчить программирование, появилась идея языка, как должны выглядеть инструкции. Потом, как это реализовать. Ну и дальше по кругу.

Аватар пользователя Дровосек
Дровосек(6 лет 7 месяцев)

А идею при помощи чего реализовали?

Аватар пользователя Igor_FF
Igor_FF(6 лет 11 месяцев)

Да можно хоть прямо в машкодах.

Аватар пользователя Er0p
Er0p(10 лет 6 дней)

Начал тему в которой ни бумбум?

Аватар пользователя Скиталец
Скиталец(9 лет 5 месяцев)

Похоже.

Аватар пользователя Vovan220
Vovan220(6 лет 6 месяцев)

В догонку - Вы действительно "Дровосек" а не АйТишник...

Аватар пользователя Praetor12
Praetor12(12 лет 4 месяца)

В истории не силён, в философии - тоже, поэтому отвечу просто как чувствую - компилятор был раньше. Хотя конечно не в виде программы, наверное, а как набор правил трансляции. Но если говорить о псевдоязыках, типа математического описания алгоритма, или блок-схем, то они конечно появились раньше.

Аватар пользователя simak2222_copy
simak2222_copy(2 года 3 месяца)

поэтому отвечу просто как чувствую

Вы неправильно сомневаетесь. Для того чтобы компилировать, надо чтобы было что компилировать. Никаких "правил трансляции" там нет. Простейший компилятор называется ассемблером и переводит ассемблерную инструкцию (мнемонику), например CALL $203C из текстового файла в последовательность из трёх байт CD 3C 20 (бинарная форма). Но эта система мнемоник (язык ассемблера) придумана производителем процессора задолго даже того как процессор был создан, не говоря уже о том когда программист написал первую инструкцию и скомпилировал (ассемблировал, в данном случае).

Аватар пользователя Praetor12
Praetor12(12 лет 4 месяца)

С вами не согласен уже на уровне определений, меня учили что ассемблер - это язык программирования, а не компилятор. 

P.S: А компилятор ассемблера это, например, программа as.exe из пакета gcc

Аватар пользователя simak2222_copy
simak2222_copy(2 года 3 месяца)

С вами не согласен уже на уровне определений, меня учили что ассемблер - это язык программирования, а не компилятор. 

Плохо учили. Ассемблер это как язык, так и компилятор. Хотя правильней говорить о системе мнемоник и её трансляции в бинарную форму. Процесс трансляции называется ассемблированием. В том числе и в пакете gcc.

Аватар пользователя pvz
pvz(9 лет 10 месяцев)

меня учили что ассемблер - это язык программирования

Если уж быть совсем занудой и разделять программирование и кодирование, то ассемблеры и автокоды - это сугубо технические инструменты для получения образа в машинных кодах.

Вот если оснастить ассемблер препроцессором, чтобы макросы кое-какие писать и не держать под рукой тетрадку с перечнем меток для локальных переходов, тогда уже да! Получится язык Си)))))

Аватар пользователя utx
utx(9 лет 3 месяца)

Во времена когда существовал DOS и файлы .com, можно было программу в текстовом редакторе набрать, тупо печатая инструкции в бинарной форме.

Аватар пользователя al.rf
al.rf(2 года 4 дня)

Только программа будет не более 64Кбайт. 

Аватар пользователя utx
utx(9 лет 3 месяца)

Жуткие были времена )

Аватар пользователя vambr
vambr(12 лет 4 месяца)

Космический симулятор-шутер-рпг с 3д графикой и открытым миром Elite умещался меньше, чем в 30 килобайт.

Аватар пользователя Писатель
Писатель(7 лет 1 неделя)

Вот давайте не будем про Элите? Меня жеж ностальгия прорвёт!

Аватар пользователя vambr
vambr(12 лет 4 месяца)

Ага, как я до последнего момента шпилил, выскочила надпись что я получил класс "данжероуз", я аж стопарик от полноты чуйств  накатил и пошёл на завод во вторую смену...

Аватар пользователя Писатель
Писатель(7 лет 1 неделя)

Ах так! Ну держи!

Аватар пользователя vambr
vambr(12 лет 4 месяца)

Эпичнее скриншот попыток влететь первый раз в шлюз станции...

Аватар пользователя Писатель
Писатель(7 лет 1 неделя)

Клавы не совпадают...

Аватар пользователя Козломордый
Козломордый(2 года 11 месяцев)

А Киберпанк на ПС 5 весит 160 гб)))

Эх, Спектрум, Элит, бессонные ночи, вялость на уроках и слипающиеся глаза. И проклятые таргоны, появляющиеся после выхода из трубы гипер перехода или в нём самом, уже точно не помню. 

Впечатлений на 30 лет.

Сколько вы говорите, она весила, 30 КБ?)))

Аватар пользователя vambr
vambr(12 лет 4 месяца)

Сам спекки назывался спектрум-48 по банальной причине, что всего оперативки в нём было как раз те сорок восемь килобайт. Но часть была занята под экран и служебные нужды, в общем под программы примерно тридцать и оставалось. Были игры, которые уровни с кассеты подгружали, но элита только сейвы-лоады. 

Аватар пользователя Писатель
Писатель(7 лет 1 неделя)

У Спеки 64к памяти, из которых 16 заняты интерпретатором Спека-Басика.

Аватар пользователя vambr
vambr(12 лет 4 месяца)

У него 64к адресуемой памяти. Из которых 16 его биос/операционка и бейсик. Из оставшихся как раз 48к оперативной памяти распределено примерно как я выше написал. Были умельцы, что занимали и часть экрана под программу, но элит вроде таким не баловалась. Просто влезала в имеющуюся оперативу.

Аватар пользователя yva
yva(8 лет 1 месяц)

Теоретически это можно и с экзешником сделать, только мороки побольше - надо вручную сформировать его заголовки, секции и т.д. Муторно и геморройно, но если припрёт, вопрос можно решить при помощи бумаги с ручкой.

Аватар пользователя utx
utx(9 лет 3 месяца)

Ага, PE/ELF писать сильно муторно, даже из С/С++

Аватар пользователя Igor_FF
Igor_FF(6 лет 11 месяцев)

"Что раньше появилось компилятор или язык программирования?"

Странный вопрос. Сначала появляется язык, а потом может появиться компилятор. Или не появится если язык реализован в качестве интерпретатора. 

Аватар пользователя simak2222_copy
simak2222_copy(2 года 3 месяца)

Раньше появился язык программирования. Допустим, та же Motorola рассылала разработчикам даташиты от 800 страниц с полным описанием процессора и мнемоник. А будете вы эти мнемоники побайтно в память забивать или пользоваться ассемблером - это уже проблемы разработчика. Под процессор была разработана система мнемоник (ассемблер), затем она была реализована в железе. Сначала ТЗ, потом уже железо. Без ТЗ - результат ХЗ. А вы как хотели?

Если же Вас интересуют языки высокого уровня исторически, то там до компилятора появился разумеется интерпретатор. Во всех случаях сначала разрабатывался язык, а затем для него уже создавался интерпретатор. С курицей и яйцом это не сравнимо, хотя и там курица как переходная форма появилась разумеется ДО яйца. Это сегодня уже установлено.

Аватар пользователя И-23
И-23(9 лет 7 месяцев)

А теперь внимание, вопрос: на чём основано ТЗ?

Аватар пользователя simak2222_copy
simak2222_copy(2 года 3 месяца)

А теперь внимание, вопрос: на чём основано ТЗ?

Вопрос неясен. На разработанной табличке мнемоник. Изначально в бумажной форме, сегодня используют электронные таблицы.

Аватар пользователя Дровосек
Дровосек(6 лет 7 месяцев)

Собственно в последнем предложении у вас тот вариант ответа, который, на мой взгляд, является правильным.

Как и в паре "компилятор-язык" в паре "курица-яйцо" есть промежуточные состояния, когда яйцо снёс условный динозавр, а вылупилась (по совокупности признаков) курица.

Страницы