АЛГОЛ 60
Парадигмы | процедурный , императивный , структурированный |
---|---|
Семья | АЛГОЛ |
Разработано | Бэкус , Бауэр , Грин , Кац , Маккарти , Наур , Перлис , Рутисхаузер , Самельсон , ван Вейнгаарден , Вокуа , Вегштейн , Вуджер |
Впервые появился | 1960 год |
Дисциплина набора текста | Статический , сильный |
Объем | Лексический |
Под влиянием | |
АЛГОЛ 58 | |
Под влиянием | |
Большинство последующих императивных языков (так называемые АЛГОЛ-подобные языки), например, PL/I , Simula , CPL , Pascal , Ada , C. |
АЛГОЛ 60 (сокращение от Algorithmic Language 1960 ) — член семейства АЛГОЛ языков программирования . Он последовал за АЛГОЛом 58 , в котором были введены кодовые блоки и begin
и end
пары для их разграничения, что представляет собой ключевой шаг на пути развития структурного программирования . АЛГОЛ 60 был одним из первых языков, реализовавших определения функций (которые можно было вызывать рекурсивно). Определения функций ALGOL 60 могли быть вложены друг в друга (что впервые было введено в любом языке программирования) с лексической областью действия . породил множество других языков, включая CPL , PL/I , Simula , BCPL , B , Pascal и C. Он Практически каждый компьютер той эпохи имел язык системного программирования, основанный на концепциях АЛГОЛ-60.
Никлаус Вирт основал свой собственный АЛГОЛ W на основе АЛГОЛА 60, прежде чем приступить к разработке Паскаля . Алгол-W задумывался как АЛГОЛ следующего поколения, но комитет АЛГОЛ 68 принял решение о более сложной и продвинутой конструкции, а не об очищенном упрощенном АЛГОЛе 60. Официальные версии АЛГОЛА названы в честь года их первой публикации. АЛГОЛ 68 существенно отличается от АЛГОЛА 60, и за это его частично критиковали, так что в целом «АЛГОЛ» относится к диалектам АЛГОЛА 60.
Стандартизация [ править ]
АЛГОЛ 60 – вместе с КОБОЛом – были первыми языками, которые стремились к стандартизации.
- ISO 1538:1984 Языки программирования – АЛГОЛ 60 (стабилизированный)
- ISO/TR 1672:1977 Аппаратное представление основных символов АЛГОЛА... (сейчас отозвано)
История [ править ]
АЛГОЛ 60 использовался в основном учеными-исследователями в США и Европе. Его использованию в коммерческих приложениях препятствовало отсутствие стандартных средств ввода/вывода в его описании и отсутствие интереса к языку со стороны крупных поставщиков компьютеров. Однако АЛГОЛ 60 стал стандартом для публикации алгоритмов и оказал глубокое влияние на будущее развитие языка.
Джон Бэкус разработал метод нормальной формы Бэкуса для описания языков программирования специально для АЛГОЛА 58. Он был переработан и расширен Питером Науром для АЛГОЛА 60 и по Дональда Кнута предложению переименован в форму Бэкуса-Наура . [1]
Питер Наур: «Как редактор бюллетеня АЛГОЛ, я был вовлечен в международные дискуссии по языку и в ноябре 1959 года был выбран членом европейской группы разработчиков языков. В этом качестве я был редактором отчета по АЛГОЛ 60, подготовленного в результате встречи АЛГОЛ-60 в Париже в январе 1960 года». [2]
На встрече в Париже (с 11 по 16 января) присутствовали следующие люди:
- Фридрих Людвиг Бауэр , Петер Наур , Хайнц Рутисхаузер , Клаус Самельсон , Бернар Вокуа , Адриан ван Вейнгаарден и Михаэль Вуджер (из Европы)
- Джон Уорнер Бэкус , Жюльен Грин , Чарльз Кац , Джон Маккарти , Алан Джей Перлис и Джозеф Генри Вегштейн (из США).
Алан Перлис дал яркое описание встречи: «Встречи были утомительными, бесконечными и волнующими. Человек раздражался, когда хорошие идеи одного человека отбрасывались вместе с плохими идеями других. Тем не менее, усердие сохранялось в течение всего периода. 13-й был превосходен».
Язык изначально не включал рекурсию . Его включили в спецификацию в последнюю минуту, вопреки желанию некоторых членов комитета. [3]
АЛГОЛ 60 вдохновил множество последовавших за ним языков. Тони Хоар заметил: «Это язык, настолько опередивший свое время, что он стал улучшением не только своих предшественников, но и почти всех своих преемников». [4] [5]
График реализации ALGOL 60 [ править ]
На сегодняшний день существует не менее 70 дополнений, расширений, производных и подъязыков Алгола 60. [6]
Имя | Год | Автор | Состояние | Описание | Целевой процессор |
---|---|---|---|---|---|
X1 АЛГОЛ 60 | август 1960 г. [7] | Эдсгер В. Дейкстра и Яап А. Зонневельд | Нидерланды | Первая реализация АЛГОЛА 60 [8] | Электрологика X1 |
Алголь | 1960 [9] | Эдгар Т. Айронс | олень | АЛГОЛ 60 | ЦКД 1604 |
Берроуз Алгол (Несколько вариантов) |
1961 | Burroughs Corporation (при участии Хоара , Дейкстры и др.) | олень | Основа компьютеров Burroughs (а теперь и Unisys MCP ) | Большие системы Берроуза и системы среднего уровня |
Случай Алгола | 1961 | олень | Simula изначально задумывалась как расширение моделирования Case ALGOL. | УНИВАК 1107 | |
ГОГОЛЬ | 1961 | Уильям М. Маккиман | олень | Для системы разделения времени ODIN | ПДП-1 |
ДАСК АЛГОЛ | 1961 | Питер Наур , Йорн Йенсен | Дания | АЛГОЛ 60 | DASK в Регнецентралене |
СМИЛ АЛГОЛ | 1962 | Торгиль Экман , Карл-Эрик Фрёберг | Швеция | АЛГОЛ 60 | СМИЛ в Лундском университете |
ГИР АЛГОЛ | 1962 | Питер Наур , Йорн Йенсен | Дания | АЛГОЛ 60 | GIER в Регнецентрале |
Дартмутский Алгол 30 [10] | 1962 | Томас Юджин Курц , Стивен Дж. Гарланд , Роберт Ф. Харгрейвс, Энтони В. Кнапп , Хорхе ЛЛасер | олень | АЛГОЛ 60 | ЛГП-30 |
Алькор Майнц 2002 | 1962 | Урсула Хилл-Самельсон, Ханс Лангмаак | Германия | Сименс 2002 г. | |
ALCOR-Иллинойс 7090 | 1962 [11] [12] |
Манфред Пауль , Ганс Рюдигер Виле, Давид Грис и Рудольф Байер | Соединенные Штаты , Западная Германия | АЛГОЛ 60 Внедрено в Иллинойсе и TH München , 1962–1964 гг. |
ИБМ 7090 |
Военный корабль США 90 Алгол | 1962 | Л. Петроне | Италия | ||
Эллиотт Алгол | 1962 | АВТОМОБИЛЬ Хоар | Великобритания | Обсуждается в его на Премии Тьюринга 1980 года. лекции | Эллиот 803 и Эллиот 503 |
АЛГОЛ 60 | 1962 | Роланд Штробель [13] | Восточная Германия | Реализовано Институтом прикладной математики Немецкой академии наук в Берлине. | Zeiss-Rechenautomat ZRA 1 |
АЛГОЛ 60 | 1962 | Бернар Вокуа , Луи Болье [14] | Франция | Институт компьютерных наук и прикладной математики Гренобля (IMAG) и Compagnie des Machines Bull | Бык Гамма 60 |
Алголь переводчик | 1962 | Г. ван дер Мей и В.Л. ван дер Поэль | Нидерланды | Государственная почта, Телеграфная и телефонная компания | ЗЕБРА |
Кидсгроув Алгол | 1963 | ФГ Дункан | Великобритания | Английская электрическая компания KDF9 | |
ГОЛОВА ГОЛОВЫ [15] | 1963 | Стивен Дж. Гарланд , Энтони В. Нэпп , Томас Юджин Курц | олень | Автономный процессор ALGOL для подмножества ALGOL 60 | ЛГП-30 |
ВАЛГОЛЬ | 1963 | Вэл Шорре | олень | Тест META II компилятора компилятора | |
FP6000 Алголь | 1963 | Роджер Мур | Канада | написано для Saskatchewan Power Corp. | ФП6000 |
точильный камень | 1964 | Брайан Рэнделл и Лоуфорд Джон Рассел | Великобритания | Подразделение атомной энергетики английской электрической компании. Предшественник Ferranti Pegasus , National Physical Laboratories ACE и English Electric DEUCE. реализаций | Английская электрическая компания KDF9 |
АЛГОЛ 60 | 1964 | Жан-Клод Буссар [16] | Франция | Гренобльский институт компьютерных наук и прикладной математики | ИБМ 7090 |
АЛГОЛ 60 | 1965 | Клод Пэйр [17] | Франция | Вычислительный центр факультета наук Нанси | ИБМ 1620 |
Дартмутский АЛГОЛ | 1965 | Стивен Дж. Гарланд , Сарр Блумсон, Рон Мартин | олень | АЛГОЛ 60 | Система разделения времени Дартмут для GE 235 |
НЕ АЛГОЛ | 1965 | Норвегия | УНИВАК | ||
АЛГОЛ 60 | 1965 [18] | ФЕЙ Круземан Арец | Нидерланды | MC-компилятор для EL-X8 | Электрологика X8 |
ВОДОРОСЛИ | 1965 | Советский Союз | Минск-22 | АЛГЭК на базе АЛГОЛ 60 и поддержки КОБОЛ для экономических задач. | |
МАЛГОЛ | 1966 | publ. A. Viil, M Kotli & M. Rakhendi, | Эстонская ССР | Минск-22 | |
ЗАРПЛАТА | 1967 | GAMS group (ГАМС, группа автоматизации программирования для машин среднего класса), cooperation of Comecon Academies of Science | СЭВ | Минск-22 , позже ЕС ЭВМ , БЭСМ | |
ALGOL/ZAM | 1967 | Польша | Польский ZAM компьютер | ||
Китайский Алгол | 1972 | Китай | Китайские иероглифы, выраженные через систему символов. | ||
ГД/Л | 1972 | олень | DG Eclipse Семейство компьютеров | ||
НОС | 1990 | Эрик Шенфельдер | Германия | Устный переводчик | Линукс и MS Windows |
МАРСТ | 2000 | Андрей Махорин | Россия | Транслятор с Алгола 60 на C | Все процессоры, поддерживаемые коллекцией компиляторов GNU; MARST является частью проекта GNU. |
Диалекты Берроуза включали специальные диалекты системного программирования, такие как ESPOL и NEWP .
Свойства [ править ]
Алгол 60 в официальном определении не имел средств ввода-вывода; реализации определяли свои собственные способами, которые редко были совместимы друг с другом. Напротив, АЛГОЛ 68 предлагал обширную библиотеку средств передачи (на языке АЛГОЛ 68 означает ввод/вывод).
АЛГОЛ 60 предоставил две стратегии оценки передачи параметров : общий вызов по значению и вызов по имени . В объявлении процедуры указано для каждого формального параметра, который должен был использоваться: значение, указанное для вызова по значению и опущенное для вызова по имени. Вызов по имени имеет определенные эффекты в отличие от вызова по ссылке . Например, без указания параметров как value или reference невозможно разработать процедуру, которая будет менять местами значения двух параметров, если фактические передаваемые параметры представляют собой целочисленную переменную и массив, индексированный той же целочисленной переменной. . [19] Подумайте о передаче указателя на swap(i, A[i]) в функцию. Теперь, когда каждый раз упоминается своп, он пересчитывается. Скажем, i := 1 и A[i] := 2, поэтому при каждом обращении к swap он будет возвращать другую комбинацию значений ([1,2], [2,1], [1,2] и т. д. на). Аналогичная ситуация возникает со случайной функцией, переданной в качестве фактического аргумента.
Функция Call-by-name известна многим разработчикам компиляторов благодаря интересным « thunks », которые используются для ее реализации. Дональд Кнут разработал « тест мужчины или мальчика » для разделения компиляторов, которые правильно реализовали « рекурсию и нелокальные ссылки». Этот тест содержит пример вызова по имени.
слова и АЛГОЛ 60 Зарезервированные ограниченные идентификаторы
В стандартном Burroughs Large Systems подъязыке 35 таких зарезервированных слов:
ALPHA
ARRAY
BEGIN
BOOLEAN
COMMENT
CONTINUE
DIRECT
DO
DOUBLE
ELSE
END
EVENT
FALSE
FILE
FOR
FORMAT
GO
IF
INTEGER
LABEL
LIST
LONG
OWN
POINTER
PROCEDURE
REAL
STEP
SWITCH
TASK
THEN
TRUE
UNTIL
VALUE
WHILE
ZIP
В стандартном подъязыке Burroughs Large Systems имеется 71 такой ограниченный идентификатор:
ACCEPT
AND
ATTACH
BY
CALL
CASE
CAUSE
CLOSE
DEALLOCATE
DEFINE
DETACH
DISABLE
DISPLAY
DIV
DUMP
ENABLE
EQL
EQV
EXCHANGE
EXTERNAL
FILL
FORWARD
GEQ
GTR
IMP
IN
INTERRUPT
IS
LB
LEQ
LIBERATE
LINE
LOCK
LSS
MERGE
MOD
MONITOR
MUX
NEQ
NO
NOT
ON
OPEN
OR
OUT
PICTURE
PROCESS
PROCURE
PROGRAMDUMP
RB
READ
RELEASE
REPLACE
RESET
RESIZE
REWIND
RUN
SCAN
SEEK
SET
SKIP
SORT
SPACE
SWAP
THRU
TIMES
TO
WAIT
WHEN
WITH
WRITE
а также имена всех встроенных функций.
Стандартные операторы [ править ]
Приоритет | Оператор | |
---|---|---|
первая арифметика | первый | ↑ (сила) |
второй | ×, / (действительное), ÷ (целое) | |
третий | +, - | |
второй | <, ≤, =, ≥, >, ≠ | |
третий | ¬ (нет) | |
четвертый | ∧ (и) | |
пятый | ∨ (или) | |
шестой | ⊃ (импликация) | |
седьмой | ≡ (эквивалентность) |
Примеры и проблемы переносимости [ править ]
Сравнение примеров кода [ править ]
АЛГОЛ edit60
procedure Absmax(a) Size:(n, m) Result:(y) Subscripts:(i, k); value n, m; array a; integer n, m, i, k; real y; comment The absolute greatest element of the matrix a, of size n by m, is copied to y, and the subscripts of this element to i and k; begin integer p, q; y := 0; i := k := 1; for p := 1 step 1 until n do for q := 1 step 1 until m do if abs(a[p, q]) > y then begin y := abs(a[p, q]); i := p; k := q end end Absmax
Реализации различаются тем, как должен быть написан текст, выделенный жирным шрифтом. Слово «ЦЕЛОЕ», включая кавычки, должно использоваться в некоторых реализациях вместо целого числа , приведенного выше, тем самым обозначая его как специальное ключевое слово.
Ниже приведен пример создания таблицы с использованием Elliott 803 ALGOL: [20]
FLOATING POINT ALGOL TEST' BEGIN REAL A,B,C,D' READ D' FOR A:= 0.0 STEP D UNTIL 6.3 DO BEGIN PRINT PUNCH(3),££L??' B := SIN(A)' C := COS(A)' PRINT PUNCH(3),SAMELINE,ALIGNED(1,6),A,B,C' END' END'
Семейство АЛГОЛ 60 [ править ]
Поскольку в АЛГОЛе 60 не было средств ввода-вывода, в АЛГОЛе нет переносимой программы hello world . Следующая программа может (и будет) скомпилироваться и работать на реализации ALGOL для мэйнфрейма Unisys серии A и представляет собой простое упрощение кода, взятого из The Language Guide. [21] в Мичиганском университете - Дирборн, Компьютер и информация Департамент науки Привет, мир! Страница примера программы АЛГОЛ. [22]
BEGIN FILE F(KIND=REMOTE); EBCDIC ARRAY E[0:11]; REPLACE E BY "HELLO WORLD!"; WRITE(F, *, E); END.
Где * и т. д. представляют собой спецификацию формата, используемую в FORTRAN, например [23]
Более простая программа, использующая встроенный формат:
BEGIN
FILE F(KIND=REMOTE);
WRITE(F, <"HELLO WORLD!">);
END.
Еще более простая программа, использующая оператор Display:
BEGIN DISPLAY("HELLO WORLD!") END.
Альтернативный пример использования ввода-вывода Elliott Algol выглядит следующим образом. Эллиот Алгол использовал разные символы для «цитат открытой строки» и «кавычек закрытой строки», представленных здесь как ' и ’ .
program HiFolks;
begin
print ‘Hello world’
end;
Вот версия для Elliott 803 Algol (A104). В стандартном Elliott 803 использовалась бумажная лента с 5 отверстиями, поэтому в ней были только заглавные буквы. В коде отсутствовали символы кавычек, поэтому £ для открытой кавычки использовался (знак фунта), а ? (знак вопроса) для закрытия цитаты. Специальные последовательности заключались в двойные кавычки (например, £L?? выводила на телетайпе новую строку).
HIFOLKS' BEGIN PRINT £HELLO WORLD£L??' END'
Версия ввода-вывода Algol серии ICT 1900 позволяла вводить данные с бумажной ленты или перфокарты. В режиме «заполнения» бумажной ленты разрешен нижний регистр. Вывод осуществлялся на построчный принтер. Обратите внимание на использование символов «(», «)» и %. [24]
'PROGRAM' (HELLO) 'BEGIN' 'COMMENT' OPEN QUOTE IS '(', CLOSE IS ')', PRINTABLE SPACE HAS TO BE WRITTEN AS % BECAUSE SPACES ARE IGNORED; WRITE TEXT('('HELLO%WORLD')'); 'END' 'FINISH'
Прыжок [ править ]
LEAP — это расширение языка программирования АЛГОЛ 60, обеспечивающее ассоциативную память троек. Три элемента в тройке обозначают связь с тем, что атрибут объекта имеет определенное значение. LEAP был создан Джеромом Фельдманом (Калифорнийский университет в Беркли) и Полом Ровнером (Лаборатория Линкольна Массачусетского технологического института) в 1967 году. LEAP также был реализован в SAIL.
См. также [ править ]
Ссылки [ править ]
- ^ Кнут, Дональд Э. (декабрь 1964 г.). «Обычная форма Бэкуса против формы Бэкуса Наура» . Коммуникации АКМ . 7 (12): 735–6. дои : 10.1145/355588.365140 . S2CID 47537431 .
- ^ Цитирование премии ACM / Питер Наур , 2005 г.
- ^ ван Эмден, Мартен (2014). «Как рекурсия проникла в программирование: история об интригах, предательстве и продвинутой семантике языка программирования» . Место программиста .
- ^ Хоар, ЦАР (декабрь 1973 г.). «Советы по проектированию языков программирования» (PDF) . п. 27. (Это утверждение иногда ошибочно приписывают Эдсгеру В. Дейкстре , также участвовавшему в реализации первого компилятора ALGOL 60. )
- ^ Абельсон, Хэл ; Дыбвиг, РК ; и др. Рис, Джонатан; Клингер, Уильям (ред.). «Пересмотренный (3) отчет об алгоритмической языковой схеме (посвященный памяти Алгола 60)» . Проверено 20 октября 2009 г.
- ↑ Энциклопедия компьютерных языков. Архивировано 27 сентября 2011 г., в Wayback Machine.
- ^ Дневной свет, EG (2011). «Сплоченный клич Дейкстры к обобщению: появление рекурсивной процедуры, конец 1950-х - начало 1960-х годов» . Компьютерный журнал . 54 (11): 1756–1772. дои : 10.1093/comjnl/bxr002 .
- ^ Круземан Арец, FEJ (30 июня 2003 г.). «Компилятор Дейкстра-Зонневельда ALGOL 60 для Electrologica X1» (PDF) . Программная инженерия . История информатики. Амстердам: Centrum Wiskunde & Informatica. ISSN 1386-3711 . Архивировано из оригинала (PDF) 17 января 2004 г.
- ^ Айронс, Эдгар Т. , Синтаксически управляемый компилятор для ALGOL 60, Communications of the ACM, Vol. 4, с. 51. (январь 1961 г.)
- ^ Курц, Томас Э. (1978). "БАЗОВЫЙ". История языков программирования . стр. 515–537. дои : 10.1145/800025.1198404 . ISBN 0127450408 .
- ^ Грис, Д.; Пол, М.; Виле, HR (1965). «Некоторые методы, использованные в ALCOR Illinois 7090» . Коммуникации АКМ . 8 (8): 496–500. дои : 10.1145/365474.365511 . S2CID 18365024 .
- ^ Байер, Р.; Грис, Д.; Пол, М.; Виле, HR (1967). «Вскрытие ALCOR Illinois 7090/7094» . Коммуникации АКМ . 10 (12): 804–808. дои : 10.1145/363848.363866 . S2CID 3783605 .
- ^ Автоматические калькуляторы с барабанным хранилищем , Друзья Технической коллекции Дрездена.
- ^ Мунье-Кун, Пьер (2014). «Алголь во Франции: от универсального проекта к встроенной культуре» . IEEE Анналы истории вычислений . 36 (4): 6. ISSN 1058-6180 .
- ^ Курц, соч. цит. , стр. 517.
- ^ Буссар, Жан-Клод (июнь 1964 г.). Исследование и создание компилятора Алгола60 на электронных калькуляторах типа IBM 7090/94 и 7040/44 [ Проектирование и реализация компилятора Алгола60 на электронных калькуляторах IBM 7090/94 и 7040/44 ] (PhD) (на французском языке). Университет Жозефа-Фурье - Гренобль I.
- ^ Клод Пэйр (27 апреля 1965 г.). Описание компилятора АЛГОЛА . Группа пользователей Европейского региона 1620 . ИБМ.
- ^ Круземан Арец, FEJ (1973). Компилятор Алгола 60 в Алголе 60 . Трактаты Математического центра. Амстердам: Математический центр.
- ^ Ахо, Альфред В .; Сетхи, Рави ; Уллман, Джеффри Д. (1986). Составители: принципы, методы и инструменты (1-е изд.). Аддисон-Уэсли. ISBN 978-0-201-10194-2 . , Раздел 7.5 и ссылки в нем
- ^ "803 АЛГОЛ" , руководство для Elliott 803 АЛГОЛ.
- ^ «Язык программирования АЛГОЛ» . www.engin.umd.umich.edu . Архивировано из оригинала 10 февраля 2010 года . Проверено 11 января 2022 г.
- ^ «Привет, мир! Пример программы» . www.engin.umd.umich.edu . Архивировано из оригинала 4 февраля 2010 года . Проверено 11 января 2022 г.
- ^ Фортран#"Привет, мир!" пример
- ^ «Серия ICL 1900: Язык Алгол» . Техническая публикация ICL 3340. 1965 г.
Дальнейшее чтение [ править ]
- Дейкстра, Эдсгер В. (1961). «Перевод АЛГОЛа 60: транслятор АЛГОЛа 60 для X1 и создание транслятора для АЛГОЛА 60 (PDF) (технический отчет). Амстердам: Mathematisch Centrum. 35.
- Рэнделл, Брайан ; Рассел, Лоуфорд Джон (1964). Реализация ALGOL 60: перевод и использование программ ALGOL 60 на компьютере . Академическая пресса. OCLC 526731 . Конструкция компилятора Whetstone . Одно из первых опубликованных описаний реализации компилятора. См. соответствующие статьи: «Возвращение к Whetstone Algol» и «The Whetstone KDF9 ALGOL Translator» Брайана Рэнделла.
- Гус, Герхард [на немецком языке] (7 августа 2017 г.). История немецкоязычной информатики - языки программирования и проектирование компиляторов [ История информатики в немецкоязычных странах - Языки программирования и проектирование компиляторов ] (PDF) (на немецком языке). Карлсруэ, Германия: Факультет компьютерных наук Технологического института Карлсруэ (KIT). Архивировано (PDF) из оригинала 19 мая 2022 г. Проверено 14 ноября 2022 г. (11 страниц)
Внешние ссылки [ править ]
- Пересмотренный отчет об алгоритмическом языке АЛГОЛ 60 Питера Наура и др. Алгол определение
- BNF Краткое описание синтаксиса АЛГОЛа 60
- «Старая одежда императора» - речь Хоара на премии ACM Тьюринга 1980 года, в которой обсуждается история АЛГОЛА и его участие.
- MARST , бесплатный переводчик с АЛГОЛА на C
- Реализация ALGOL 60 для FP6000. Архивировано 25 июля 2020 г. на Wayback Machine. Обсуждение некоторых проблем реализации.
- Наур, Питер (август 1978 г.). «Европейская сторона последней фазы разработки АЛГОЛА 60» . Уведомления ACM SIGPLAN . 13 (8): 15–44. дои : 10.1145/960118.808370 . S2CID 15552479 .
- Эдинбургский университет написал компиляторы для Algol60 (позже обновленные для Algol60M) на основе своих компиляторов Atlas Autocode, первоначально загруженных с Atlas на KDF-9. Компиляторы Эдинбурга сгенерировали код для ICL1900, ICL4/75 (клон IBM360) и ICL2900. Вот BNF для Algol60, заархивированный 15 мая 2020 г. на Wayback Machine , и исходный код компилятора ICL2900, заархивированный 15 мая 2020 г. на Wayback Machine , документация библиотеки, заархивированная 15 мая 2020 г. на Wayback Machine , и значительный набор тестов. Архивировано 15 мая 2020 г. в Wayback Machine, включая тесты Брайана Вичманна. Архивировано 15 мая 2020 г. на Wayback Machine. Также существует довольно поверхностный переводчик уровня исходного кода Algol60 в Atlas Autocode. Архивировано 15 мая 2020 г. на Wayback Machine .
- Эрика С. Рэймонда , Музей ретрокомпьютеров среди прочего, ссылка на интерпретатор NASE ALGOL 60, написанный на C.
- Интерпретатор NASE
- Истории о B5000 и людях, которые там были: специальный компьютер ALGOL [1] , [2]
- Боттенбрух, Герман (1961). Структура и использование АЛГОЛА 60 (Отчет). дои : 10.2172/4020495 . ОСТИ 4020495 .
- NUMAL Библиотека числовых процедур на языке ALGOL 60, разработанная в The Stichting Centrum Wiskunde & Informatica ( правопреемнике Stichting Mathematich Centrum), законном владельце .
- Ресурсы по ALGOL 60: переводчики, документация, программы
- АЛГОЛ 60 включен в Racket