Парадигма | процедурный, императивный, структурированный |
---|---|
Семейство | АЛГОЛ |
Разработано | Фридрихом Л. Бауэром, Герман Боттенбрух, Хайнц Рутисхаузер, Клаус Самельсон, Джон Бэкус, Чарльз Кац, Алан Перлис, Джозеф Генри Вегштейн |
Впервые появился | 1958; 62 года назад (1958) |
Дисциплина набора текста | Статический, сильный |
Объем | Лексический |
Под влиянием | |
FORTRAN, IT, Plankalkül, Superplan, Sequentielle Formelübersetzung | |
Influenced | |
Большинство последующих императивных языков (Алголоподобный ) |
ALGOL 58, первоначально названный IAL, является одним из семейства АЛГОЛ компьютерных языков программирования. Это была ранняя компромиссная разработка, вскоре замененная АЛГОЛОМ 60. Согласно Джону Бэкусу
"Цюрихская конференция ACM-GAMM имела два основных мотива при предложении IAL: (а) предоставить средства передачи числовых методов и других процедур между людьми, и (б) предоставить средства реализации заявленного процесса на разнообразие машин... "
АЛГОЛ 58 ввел фундаментальное понятие составного оператора, но он был ограничен только потоком управления и не был привязан к область идентификатора так же, как блоки в Algol 60.
Бауэр приписывает это имя Герману Боттенбруху, который ввел термин «алгоритмический язык» (algorithmische Sprache) в 1957 году, «по крайней мере, в Германии».
Были предложения по универсальному языку со стороны Ассоциации вычислительной техники (ACM), а также немецкой Gesellschaft für Angewandte Mathematik und Mechanik («Общество прикладной математики и механики») (ГАММ). Было решено организовать совместное собрание, чтобы объединить их. Встреча проходила с 27 мая по 2 июня 1958 г. в ETH Zurich и на ней присутствовали следующие люди:
Первоначально этот язык предлагалось называть IAL(Международный алгебраический язык), но, согласно Перлису, это было отвергнуто как «невыразимая и напыщенная аббревиатура». Вместо этого был предложен АЛГОЛ, хотя официально его приняли только год спустя. В публикации после собрания все еще использовалось название IAL.
К концу 1958 г. группа ZMMD построила рабочий компилятор ALGOL 58 для компьютера Z22. ZMMD было аббревиатурой Цюриха (где работал Рутисхаузер), Мюнхена (рабочее место Бауэра и Самельсона), Майнца (местонахождение компьютера Z22), Дармштадта (рабочее место Боттенбруха).
Алгол 58 претерпел некоторые усилия по внедрению в IBM, но эти усилия конкурировали с FORTRAN, и вскоре от них отказались. Он также был реализован в Дартмутском колледже на LGP-30, но вскоре эта реализация превратилась в АЛГОЛ 60. Реализация для Burroughs 220 также развивалась по своим собственным направлениям, но сохранила большую часть оригинального характера АЛГОЛА 58.
Основным вкладом АЛГОЛ 58 стал более поздний язык; он был использован в качестве основы для JOVIAL, MAD, NELIAC и ALGO. Он также использовался в 1959 году для публикации алгоритмов в CACM, положив начало тенденции использования нотации АЛГОЛ в публикации, которая продолжалась много лет.
Имя | Год | Автор | Состояние | Описание | Целевой ЦП |
---|---|---|---|---|---|
Реализация ZMMD | 1958 | Фридрих Л. Бауэр, Хайнц Рутисхаузер, Клаус Самельсон, Герман Боттенбрух | Германия | Z22 | |
NELIAC | 1958 | Военно-морская лаборатория электроники | США | AN / USQ-17 | |
JOVIAL | 1960 | Джулс Шварц | США | Был DOD HOL до Ada (язык программирования) | Различные (см. Статью) |
1960 | Джоэл Мернер и др. | США | Burroughs Corporation B220 | ||
MAD | 1960 | Мичиганский университет | США | мэйнфрейм IBM 7090 / 7094, затем в середине 1960-х годов перенесен на Univac 1108 | |
Дартмутский АЛГОЛ 30 | 1962 | Thomas Eugene Kurtz et al. - превратился в АЛГОЛ 60 | США | LGP-30 | |
1962 | Боб Брейден, Лоуренс М. Брид и Роджер Мур | США | расширение BALGOL | IBM 7090 | |
ALGO | ~ | Bendix Corporation | США | Bendix G-15 |
: =
, представляющим стрелку, направленную влево) и отношением равенства =
. и хранится в АЛГОЛе 60.для i: = base (приращение) limit
, прямо напоминающий цикл языка программирования Rutishauser Superplan, заменяющий =
на : =
и заменяющий его немецкое ключевое слово Für
с прямым английским переводом для
; В АЛГОЛе 60 круглые скобки были заменены разделителями слов step
и до
, так что предыдущий оператор вместо этого будет i: = base stepincrement доlimit
.