WikiDer > АЛГОЛ 58

ALGOL 58
АЛГОЛ 58
Парадигмапроцедурный, императив, структурированный
СемьяАЛГОЛ
РазработаноФридрих Л. Бауэр, Герман Боттенбрух, Хайнц Рутисхаузер, Клаус Самельсон, Джон Бэкус, Чарльз Кац, Алан Перлис, Джозеф Генри Вегштейн
Впервые появился1958; 62 года назад (1958)
Печатная дисциплинаСтатический, сильный
ОбъемЛексический
Под влиянием
FORTRAN, ЭТО, Plankalkül,[1] Суперплан, Sequentielle Formelübersetzung
Под влиянием
Большинство последующих императивных языков (Алголоподобный)

АЛГОЛ 58, первоначально названный IAL, является одним из семьи АЛГОЛ компьютер языки программирования. Это был ранний компромиссный дизайн, вскоре замененный АЛГОЛ 60. В соответствии с Джон Бэкус[2]

"Цюрихская конференция ACM-GAMM имела два основных мотива при предложении IAL: (а) предоставить средства передачи числовых методов и других процедур между людьми, и (б) предоставить средства реализации заявленного процесса на различных машины ... "

Алгол 58 ввел фундаментальное понятие составное заявление, но это было ограничено поток управления только, и это не было привязано к область идентификатора так, как Алгол 60-х блоки мы.

Имя

Бауэр приписывает имя Герман Боттенбрух, кто придумал термин алгоритмический язык (algorithmische Sprache) в 1957 году, «по крайней мере, в Германии».[3]

История

Были предложения универсального языка от Ассоциация вычислительной техники (ACM), а также немецким Gesellschaft für Angewandte Mathematik und Mechanik («Общество прикладной математики и механики») (ГАММ). Было решено организовать совместное собрание, чтобы объединить их. Встреча проходила с 27 мая по 2 июня 1958 г. в г. ETH Цюрих и присутствовали следующие люди:

Язык изначально предлагалось назвать IAL (Международный алгебраический язык), но согласно Перлису,[4]это было отвергнуто как «невыразимая и напыщенная аббревиатура». Вместо этого был предложен АЛГОЛ, хотя официально он был принят только год спустя. Публикация после собрания по-прежнему использовала название IAL.[5]

К концу 1958 года ZMMD-group построила рабочий компилятор Алгола 58 для Z22 компьютер. ZMMD было аббревиатурой Цюриха (где работал Рутисхаузер), Мюнхена (рабочее место Бауэра и Самельсона), Майнца (местонахождение компьютера Z22), Дармштадта (рабочее место Боттенбруха).

Алгол 58 претерпел некоторые усилия по реализации на IBM, но усилия конкурировали с FORTRAN, и вскоре заброшены. Это также было реализовано на Дартмутский колледж на LGP-30, но эта реализация вскоре превратилась в АЛГОЛ 60. Реализация для Берроуз 220 звонков БАЛГОЛ также развивалась по своим собственным линиям, но сохранила большую часть оригинального характера Алгола 58.[6]

Основной вклад АЛГОЛА 58 был в более поздние языки; он был использован в качестве основы для Веселый, СУМАСШЕДШИЙ, NELIAC и АЛГО. Он также использовался в 1959 году для публикации алгоритмы в CACM, положив начало тенденции использования нотации Алгола в публикациях, которая продолжалась много лет.

Хронология реализации вариантов АЛГОЛА 58

ИмяГодАвторСостояниеОписаниеЦелевой ЦП
ZMMD-реализация1958Фридрих Л. Бауэр, Хайнц Рутисхаузер, Клаус Самельсон, Герман БоттенбрухГерманияZ22
NELIAC1958Лаборатория морской электроникиСоединенные Штаты АмерикиAN / USQ-17
Веселый1960Жюль ШварцСоединенные Штаты АмерикиБыл DOD HOL до Ада (язык программирования)Разное (см. Статью)
БАЛГОЛ1960Джоэл Мернер и др.Соединенные Штаты АмерикиКорпорация Берроуз B220
СУМАСШЕДШИЙ1960университет МичиганаСоединенные Штаты АмерикиIBM 7090/ 7094 мэйнфрейм, затем в середине 1960-х годов перенесен на Univac 1108
Дартмутский АЛГОЛ 301962Томас Юджин Курц и другие. - превратился в АЛГОЛ 60Соединенные Штаты АмерикиLGP-30
СУБАЛГОЛЬ1962Боб Брейден, Лоуренс М. Брид и Роджер Мур, Стэндфордский УниверситетСоединенные Штаты АмерикиРасширение BALGOLIBM 7090
АЛГО~Bendix CorporationСоединенные Штаты АмерикиБендикс G-15

Влияние АЛГОЛА 58 на АЛГОЛ 60

  • IAL представил трехуровневую концепцию языка ссылок, публикаций и аппаратных средств, а также концепцию «разделителей слов», имеющих отдельное представление от свободно выбранных идентификаторов (следовательно, без зарезервированных слов). Алгол 60 сохранил эту трехуровневую концепцию.[7]
  • Различие между присвоением (:= представляет собой стрелку, направленную влево) и отношение равенства = был введен в IAL и сохранен в АЛГОЛе 60.
  • И IAL, и ALGOL 60 позволяют использовать массивы с произвольными нижними и верхними границами нижнего индекса и позволяют определять границы нижнего индекса с помощью целочисленных выражений.
  • И IAL, и АЛГОЛ 60 допускают вложение объявлений процедур и соответствующих областей идентификаторов.
  • В отчете IAL подстановка параметров описывалась примерно так же, как и в отчете ALGOL 60, оставляя открытой возможность позвонить по имени. Неясно, было ли это реализовано в то время.
  • IAL допускает числовые метки операторов, которые сохраняет АЛГОЛ 60.
  • На возможность включения кода, не относящегося к Алголу, в программу уже намекали в контексте параметров процедур.
  • И IAL, и ALGOL 60 имеют обозначение переключателя, но не связанные с оператор переключения на C и других языках.
  • Встроенные функции формы ж(Икс) := Икс / 2; были предложены в IAL, но упавший в АЛГОЛ 60.
  • Объявления процедур IAL предоставляют отдельные списки объявлений для входных и выходных параметров, процедура может возвращать несколько значений; этот механизм был заменены в АЛГОЛ 60 с ценить декларация.
  • Объявления переменных в IAL могут быть размещены куда угодно в программе и не обязательно в начале процедуры. Напротив, объявления в блоке ALGOL 60 должны выполняться перед все операторы исполнения.
  • В за-запись имеет вид для i: = базовый предел (приращение), прямо напоминающий цикл языка программирования Рутисхаузера Суперплан, заменяя =с :=и заменив его ключевое слово на немецком Мех с прямым английским переводом за; Алгол 60 заменил круглые скобки разделителями слов. шаг и до того как, так что предыдущий оператор вместо этого будет я:=основание шаг приращение до того как предел.
  • IAL если-в заявлении нет тогда-пункт или еще-пункт; это скорее охранники последующее заявление. IAL предоставляет если либо-Заявление, позволяющее проводить тестирование в нескольких условиях. Оба были заменены на ALGOL если-тогда построить, с введением "болтающийсяеще"двусмысленность.
  • IAL обеспечивает макроподстановку делать-утверждение; это было исключено в АЛГОЛ 60.
  • IAL позволяет пропускать один или несколько индексов массива при передаче массивов процедурам и предоставлять любые или все аргументы процедуры, передаваемой другой процедуре.
  • Инфиксные логические операторы IAL имеют одинаковый уровень приоритета. Показатели показаны парными стрелками вверх и вниз, что устранило любую путаницу относительно правильной интерпретации вложенных показателей; Алгол 60 заменил парные стрелки одной стрелкой вверх, функция которой эквивалентна ФОРТРАНУ. **.
  • В отчете IAL не указывается явно, какие стандартные функции должны были быть предоставлены, а делается расплывчатая ссылка на «стандартные функции анализа». Отчет ALGOL 60 имеет более подробный список стандартных функций.

Рекомендации

  1. ^ Рохас, Рауль; Хашаген, Ульф (2002). Первые компьютеры: история и архитектура. MIT Press. п. 292. ISBN 978-0262681377. Получено 25 октября, 2013.
  2. ^ Backus, J.W. (1959). "Синтаксис и семантика предлагаемого международного алгебраического языка Цюрихской конференции ACM-GAMM". Материалы Международной конференции по обработке информации. ЮНЕСКО. С. 125–132.
  3. ^ Аспрей, Уильям (17 февраля 1987 г.), Интервью с Фридрихом Л. Бауэром (PDF), Институт Чарльза Бэббиджа, заархивировано из оригинал (PDF) 22 апреля 2012 г.
  4. ^ Перлис, А.Дж. (1981). «Беседа о вычислениях в пятидесятые годы». Национальная конференция ACM. Нэшвилл ,. TN. Лос-Аламито, Калифорния, 1995: (стенограмма в J. A. N. Lee (ed.), Computer Pioneers, IEEE Computer Society Press. Pp. 545–556).CS1 maint: location (связь)
  5. ^ Перлис, А.Дж.; Самельсон, К. (1958). «Предварительный отчет: международный алгебраический язык». Коммуникации ACM. 1 (12): 8–22. Дои:10.1145/377924.594925. S2CID 28755282.
  6. ^ "Реализации и диалекты Алгола 58", Группа сохранения программного обеспечения, Музей истории компьютеров. Дональд Кнут цитируется на BALGOL: «Я учусь на втором году в Калифорнийском технологическом институте, и я был консультантом Берроуза. Закончив работу над компилятором для Берроуза, я присоединился к отделу планирования продукции. Отдел планирования продукции в основном состоял из людей, написавших лучшее программное обеспечение, когда-либо созданное в мире до того времени, которым был компилятор Алгола Берроуза для компьютеров 220. Это был большой шаг вперед для программного обеспечения. Это было первое программное обеспечение, которое использовало обработку списков и структуры данных высокого уровня в интеллектуальном Они взяли идеи Ньюэлла и Саймона и применили их к компиляторам. Он обошел все остальные вещи, которые мы делали ». [Дон Кнут, Устная история ЧМ, 2007, стр. 9]
  7. ^ Наур, П (редактор) (1962). Пересмотренный отчет по алгоритмическому языку ALGOL 60 (PDF). Международная федерация обработки информации.CS1 maint: дополнительный текст: список авторов (связь)

внешняя ссылка