В чем изначально был запрограммирован компилятор ALGOL?

Я осмотрелся вокруг и нашел мало информации о том, что использовалось для создания компилятора ALGOL 58. Был ли созданный компилятор похож на FORTRAN в том смысле, что они использовали физические карты для его создания?

2 ответа

Решение

Конечно, они использовали физические карты, потому что это было наиболее практичным в то время. Либо вы перфорировали карты (сделали это сами), либо устанавливали переключатели (даже менее эффективные...) Бумажная лента также использовалась, но удовольствие от перфокарт заключается в том, что вы можете много пробивать; заранее, если вы забыли один, и перфоратор был занят... Но это не имеет большого отношения к тому, на каком языке оно было написано. Я почти уверен, что это была сборка.

Я не уверен насчет контекста вопроса. Разные производители поставляли разные диалекты алгола.

Мой опыт работы с Algol 60 был, во-первых, с английской Electric KDF9, в которой было два разных, но совместимых компилятора Algol. Во-первых, система компилятора / контроллера Whetstone для разработки программ, которая имела отличную диагностику, но работала довольно медленно. Во-вторых, английский электрический компилятор, который компилируется гораздо медленнее, но генерирует быстрый код времени выполнения. Я считаю, что оба эти компилятора были написаны в машинном коде.

В 1970 году я присоединился к Burroughs Machines Ltd и работал с B6500 и его преемниками. Его компилятор Algol был написан на Algol и использовался для компиляции самого себя! Это была самая близкая вещь, которую мы имели к машинному коду! Большинство составных частей вспомогательного программного обеспечения были написаны на Algol. EG Все остальные языковые компиляторы! (Basic, PL/I, Cobol, Fortran)

Если вы возражаете против проблемы с яйцом и курицей, вы совершенно правы.

До запуска аппаратного обеспечения B6500 на B5500 работал эмулятор B6500. Таким образом, компилятор Algol для B6500 может быть написан на B5500 Algol, а полученный код запускается в эмуляторе B6500. Изменения с языка B5500 Algol на версию B6500 не были такими большими, хотя машинный код был совсем другим. Поэтому изменение исходного кода для компилятора с B5500 на B6500 не было большой работой.

Если вы собираетесь настаивать на ответе на вопрос о том, как был создан компилятор B5500 Algol, боюсь, у меня его нет! Это было до моего времени.

Формулировка "компилятор Algol 58" предполагает, что был только один, но это не так; их было немало, с разной степенью верности опубликованному отчету IAL.

Для компилятора Дона Кнута для Burroughs 205 мы можем посмотреть на списки.

Следуя ответу другого Дейва, есть подробный отчет о написании компилятора Algol для B205 на http://ed-thelen.org/comp-hist/B5000-AlgolRWaychoff.html

Вот выдержка из рассказа о Дональде Кнута. "В июне мы познакомились с этим высоким парнем из колледжа, который всегда подписывал свое имя строчными буквами. Он был донкнутом. Он заключил контракт с Брэдом Маккензи на написание компилятора 205 Algol 58, который будет подмножеством компилятора 220 Algol 58, аналогичного этому. писали Джек Мернер и Джоэл Эрдвин.

Дон утверждал, что он мог бы написать компилятор и руководство по языку самостоятельно во время летних каникул в три с половиной месяца. Он сказал, что сделает это за 5000 долларов. Нашему компилятору Fortran потребовался кардридер, перфоратор. строчный принтер и автоматическая с плавающей запятой. Дон сказал, что ему не понадобится устройство для чтения карт или перфорация для карт, но ему нужен блок магнитной ленты и бумажная лента. Я спросил Джерарда Гайода, как Брэда могли уговорить заплатить этому студенту 5000 долларов за то, чтобы он написал что-то, что должно было быть хламом, если он собирался потратить на это всего три с половиной месяца. Джерард прошептал мне свой ответ. Он сказал: "Мы думаем, что он уже написал это. Вероятно, он делал это в свободное время, работая в компьютерном центре Case Institute". Я все еще не былЯ полностью удовлетворен таким ответом, потому что я был выпускником колледжа, чья первая работа была за 325 долларов в месяц, а я только что сменил работу и зарабатывал 525 долларов в месяц. Кроме того, на написание компиляторов смертным людям уходило 25 человеко-лет, а не три с половиной человеко-месяца. Я думал, что Брэд сошел с ума ".

Другие вопросы по тегам