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

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

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

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

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

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

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

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

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

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

Комментарии

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

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

Комментарий администрации:  
*** отключен (систематические набросы и срач) ***
Аватар пользователя Stan Miller
Stan Miller(4 года 1 месяц)

smile9.gif

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

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

Аватар пользователя AndreyTemp
AndreyTemp(9 лет 3 дня)

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

Комментарий администрации:  
*** отключен (систематические набросы) ***
Аватар пользователя yva
yva(7 лет 9 месяцев)

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

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

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

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

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

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

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

Комментарий администрации:  
*** отключен (систематические набросы и срач) ***
Аватар пользователя yva
yva(7 лет 9 месяцев)

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

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

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

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 лет 1 месяц)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Комментарий администрации:  
*** Пропиндосский прихвостень ***
Аватар пользователя wolkwww
wolkwww(11 лет 7 месяцев)

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

Комментарий администрации:  
*** отключен (систематические набросы и срач) ***
Аватар пользователя дзядзька Хведар

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

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

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

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

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

Комментарий администрации:  
*** Пропиндосский прихвостень ***
Аватар пользователя Escander
Escander(6 лет 2 недели)

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

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

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

Комментарий администрации:  
*** отключен (систематические набросы и срач) ***
Аватар пользователя senbonzakura
senbonzakura(6 лет 8 месяцев)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Аватар пользователя Скиталец
Скиталец(9 лет 3 недели)

Похоже.

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

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

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

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

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

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

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

Комментарий администрации:  
*** отключен (уличен в засорении ресурса) ***
Аватар пользователя Praetor12
Praetor12(11 лет 11 месяцев)

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

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

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

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

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

Комментарий администрации:  
*** отключен (уличен в засорении ресурса) ***
Аватар пользователя pvz
pvz(9 лет 5 месяцев)

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

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

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

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

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

Аватар пользователя al.rf
al.rf(1 год 7 месяцев)

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

Комментарий администрации:  
*** отключен (много вони) ***
Аватар пользователя utx
utx(8 лет 10 месяцев)

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

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

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

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

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

Комментарий администрации:  
*** Уличен в сочинении псевдостатистической дезы - https://aftershock.news/?q=comment/11334142#comment-11334142 ***
Аватар пользователя vambr
vambr(11 лет 11 месяцев)

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

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

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

Комментарий администрации:  
*** Уличен в сочинении псевдостатистической дезы - https://aftershock.news/?q=comment/11334142#comment-11334142 ***
Аватар пользователя vambr
vambr(11 лет 11 месяцев)

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

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

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

Комментарий администрации:  
*** Уличен в сочинении псевдостатистической дезы - https://aftershock.news/?q=comment/11334142#comment-11334142 ***
Аватар пользователя Козломордый
Козломордый(2 года 7 месяцев)

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

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

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

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

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

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

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

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

Комментарий администрации:  
*** Уличен в сочинении псевдостатистической дезы - https://aftershock.news/?q=comment/11334142#comment-11334142 ***
Аватар пользователя vambr
vambr(11 лет 11 месяцев)

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

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

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

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

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

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

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

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

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

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

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

Комментарий администрации:  
*** отключен (уличен в засорении ресурса) ***
Аватар пользователя И-23
И-23(9 лет 2 месяца)

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

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

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

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

Комментарий администрации:  
*** отключен (уличен в засорении ресурса) ***
Аватар пользователя Дровосек
Дровосек(6 лет 2 месяца)

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

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

Страницы