АЛГОЛ 58

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

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

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

АЛГОЛ 58 ввел фундаментальное понятие составного оператора, но он был ограничен только потоком управления и не был привязан к область идентификатора так же, как блоки в Algol 60.

  • 1 Имя
  • 2 История
    • 2.1 График времени реализации вариантов АЛГОЛА 58
  • 3 Влияние АЛГОЛА 58 на АЛГОЛ 60
  • 4 Ссылки
  • 5 Внешние ссылки
Имя

Бауэр приписывает это имя Герману Боттенбруху, который ввел термин «алгоритмический язык» (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, положив начало тенденции использования нотации АЛГОЛ в публикации, которая продолжалась много лет.

График реализации вариантов АЛГОЛА 58

ИмяГодАвторСостояниеОписаниеЦелевой ЦП
Реализация ZMMD1958Фридрих Л. Бауэр, Хайнц Рутисхаузер, Клаус Самельсон, Герман БоттенбрухГерманияZ22
NELIAC 1958Военно-морская лаборатория электроники СШАAN / USQ-17
JOVIAL 1960Джулс Шварц СШАБыл DOD HOL до Ada (язык программирования) Различные (см. Статью)
1960Джоэл Мернер и др.СШАBurroughs Corporation B220
MAD 1960Мичиганский университет СШАмэйнфрейм IBM 7090 / 7094, затем в середине 1960-х годов перенесен на Univac 1108
Дартмутский АЛГОЛ 30 1962Thomas Eugene Kurtz et al. - превратился в АЛГОЛ 60СШАLGP-30
1962Боб Брейден, Лоуренс М. Брид и Роджер Мур СШАрасширение BALGOLIBM 7090
ALGO ~Bendix Corporation СШАBendix G-15
Влияние АЛГОЛА 58 на АЛГОЛ 60
  • IAL представил три -уровневая концепция справочного, публикационного и аппаратного языков, а также концепция «разделителей слов», имеющих отдельное представление от свободно выбранных идентификаторов (следовательно, без зарезервированных слов). В АЛГОЛе 60 сохранена эта трехуровневая концепция.
  • В IAL было введено различие между присваиванием (: =, представляющим стрелку, направленную влево) и отношением равенства =. и хранится в АЛГОЛе 60.
  • И IAL, и АЛГОЛ 60 позволяют использовать массивы с произвольными нижними и верхними границами нижнего индекса и позволяют определять границы нижнего индекса с помощью целочисленных выражений.
  • И IAL, и АЛГОЛ 60 позволяют вложенность деклараций процедур и соответствующих областей идентификаторов.
  • В отчете IAL подстановка параметров описывалась примерно в тех же терминах, что и в отчете ALGOL 60, оставляя открытой возможность вызова по имени. Неясно, было ли это реализовано в то время.
  • IAL допускает числовые метки операторов, которые сохраняются в Алголе 60.
  • На возможность включения неалголовского кода в программу уже намекали, в контексте параметров процедур.
  • И IAL, и ALGOL 60 имеют указатель переключателя, однако не связанный с оператором переключения в C и других языках.
  • Встроенные функции вида f (x): = x / 2; были предложены в IAL, но отброшены в АЛГОЛЕ 60.
  • Объявления процедур IAL предоставляют отдельные списки объявлений для входных и выходных параметров, процедура может возвращать несколько значений; этот механизм был заменен в АЛГОЛЕ 60 объявлением значения .
  • Объявления переменных в IAL могут быть размещены где угодно в программе и не обязательно в начале процедуры. Напротив, объявления в блоке ALGOL 60 должны находиться перед всеми операторами выполнения.
  • Оператор дляимеет форму для i: = base (приращение) limit, прямо напоминающий цикл языка программирования Rutishauser Superplan, заменяющий =на : =и заменяющий его немецкое ключевое слово Fürс прямым английским переводом для; В АЛГОЛе 60 круглые скобки были заменены разделителями слов stepи до, так что предыдущий оператор вместо этого будет i: = base stepincrement доlimit.
  • IAL if-statement не имеет предложения thenили else-clause; это скорее охраняет последующее утверждение. IAL предоставляет выражение if или, которое позволяет проводить тестирование нескольких условий. Оба были заменены конструкцией ALGOL if-thenс введением двусмысленности «dangling- else ».
  • IAL обеспечивает макрозамены с утверждение do; это было исключено в АЛГОЛЕ 60.
  • IAL позволяет опускать один или несколько индексов массива при передаче массивов процедурам и предоставлять любые или все аргументы процедуре, передаваемой другой процедуре.
  • Инфиксные логические операторы IAL имеют одинаковый уровень приоритета. Показатели показаны парными стрелками вверх и вниз, что устраняет путаницу в правильной интерпретации вложенных показателей; В АЛГОЛе 60 парные стрелки заменены одной стрелкой, направленной вверх, функция которой эквивалентна **.
  • ФОРТРАНА. Отчет IAL не указывает явно, какие стандартные функции должны были быть предоставлены, делая расплывчатую ссылку на «стандартные функции анализа». Отчет ALGOL 60 содержит более подробный список стандартных функций.
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-07 21:24:49
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте