Jump to content

АЛГОЛ 58

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

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

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

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

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

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

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

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

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

Основной вклад АЛГОЛа 58 был в развитие более поздних языков; он был использован как основа для JOVIAL , [ 4 ] МЭД , НЕЛИАК [ 4 ] и АЛГО . Он также использовался в 1959 году для публикации алгоритмов в CACM , положив начало тенденции использования нотации ALGOL в публикациях, которая продолжалась в течение многих лет.

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

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

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

[ редактировать ]
  • IAL представил трехуровневую концепцию языка ссылок, публикаций и аппаратного обеспечения, а также концепцию «разделителей слов», имеющих отдельное представление от свободно выбранных идентификаторов (следовательно, никаких зарезервированных слов). АЛГОЛ 60 сохранил эту трехуровневую концепцию. [ 8 ]
  • Различие между присваиванием ( := представляющий стрелку, направленную влево) и отношение равенства = был введен в IAL и сохранен в ALGOL 60.
  • И IAL, и ALGOL 60 допускают использование массивов с произвольными нижними и верхними границами индексов, а также позволяют определять границы индексов с помощью целочисленных выражений.
  • И IAL, и ALGOL 60 допускают вложение объявлений процедур и соответствующих областей идентификаторов.
  • В отчете IAL подмена параметров описывалась примерно в тех же терминах, что и в отчете ALGOL 60, оставляя открытой возможность вызова по имени . Неясно, было ли это реализовано в то время.
  • IAL допускает числовые метки операторов, которые сохранил ALGOL 60.
  • На возможность включения в программу кода, отличного от ALGOL, уже намекали в контексте параметров процедур.
  • И IAL, и ALGOL 60 имеют указатель переключателя , однако не связанный с оператором переключения в C и других языках.
  • Встроенные функции вида f(x) := x / 2; были предложены в IAL, но исключены из ALGOL 60.
  • Объявления процедур IAL предоставляют отдельные списки объявлений для входных и выходных параметров. Процедура может возвращать несколько значений; этот механизм был заменен в АЛГОЛе 60 объявлением значения .
  • Объявления переменных в IAL можно размещать в любом месте программы, а не обязательно в начале процедуры. Напротив, объявления внутри блока ALGOL 60 должны происходить перед всеми операторами выполнения.
  • The for -оператор имеет форму for i:=base(increment)limit, прямо напоминающий цикл языка программирования Рутисхаузера Superplan , заменяющий =с :=и заменив его ключевое слово на немецком языке Für с прямым английским переводом for; АЛГОЛ 60 заменил круглые скобки разделителями слов. step и until, так что предыдущий оператор вместо этого будет i:=base step increment until limit.
  • IAL if -statement не имеет тогда -предложение или еще -предложение; он скорее охраняет последующее утверждение. IAL предоставляет if либо -оператор, который позволяет чисто проверить несколько условий. Оба были заменены Алголом. если - затем построить, с введением « висячих » иначе "двусмысленность".
  • IAL обеспечивает макрозамещение с помощью делать - утверждение; это было исключено в АЛГОЛе 60.
  • IAL позволяет опускать один или несколько индексов массива при передаче массивов процедурам и предоставлять любые или все аргументы процедуры, передаваемой другой процедуре.
  • Все инфиксные логические операторы IAL имеют один и тот же уровень приоритета. Экспоненты обозначены парными стрелками вверх и вниз, что устранило путаницу в отношении правильной интерпретации вложенных экспонент; В АЛГОЛе 60 парные стрелки заменены одной стрелкой вверх, функция которой эквивалентна ** в FORTRAN .
  • В отчете IAL не уточняется явно, какие стандартные функции должны быть предоставлены, а лишь туманно упоминаются «стандартные функции анализа». Отчет ALGOL 60 имеет более подробный список стандартных функций.
  1. ^ Рохас, Рауль; Хашаген, Ульф (2002). Первые компьютеры: история и архитектура . МТИ Пресс. п. 292. ИСБН  978-0262681377 . Проверено 25 октября 2013 г.
  2. ^ Бэкус, JW (1959). «Синтаксис и семантика предложенного международного алгебраического языка на Цюрихской конференции ACM-GAMM». Материалы международной конференции по обработке информации . ЮНЕСКО. стр. 125–132.
  3. ^ Эспрей, Уильям (17 февраля 1987 г.), Интервью с Фридрихом Л. Бауэром (PDF) , Институт Чарльза Бэббиджа , заархивировано из оригинала (PDF) 22 апреля 2012 г.
  4. ^ Перейти обратно: а б с Гус, Герхард [на немецком языке] (7 августа 2017 г.). История немецкоязычной информатики - языки программирования и проектирование компиляторов [ История информатики в немецкоязычных странах - Языки программирования и проектирование компиляторов ] (PDF) (на немецком языке). Карлсруэ, Германия: Факультет компьютерных наук Технологического института Карлсруэ (KIT). Архивировано (PDF) из оригинала 19 мая 2022 г. Проверено 14 ноября 2022 г. (11 страниц)
  5. ^ Перлис, Эй Джей (1981). «Разговор о компьютерах в пятидесятые годы». Национальная конференция ACM. Нэшвилл, Теннесси . Лос-Аламито, Калифорния: (Стенограмма ЯН Ли (ред.), Computer Pioneers, IEEE Computer Society Press (опубликовано в 1995 г.), стр. 545–556).
  6. ^ Перлис, Эй Джей ; Самельсон, К. (1958). «Предварительный отчет: международный алгебраический язык» . Коммуникации АКМ . 1 (12): 8–22. дои : 10.1145/377924.594925 . S2CID   28755282 .
  7. ^ «Реализации и диалекты Algol 58» , Группа сохранения программного обеспечения , Музей истории компьютеров . Дональд Кнут цитируется в журнале BALGOL: «Я учусь на втором курсе Калифорнийского технологического института и был консультантом Берроуза. После завершения работы над компилятором для Берроуза я присоединился к отделу планирования продукции. Отдел планирования продукции в основном состоял из людей, которые написал лучшее программное обеспечение, когда-либо созданное в мире на тот момент, — компилятор Burroughs ALGOL для компьютера 220. Это был большой шаг вперед для программного обеспечения. Это было первое программное обеспечение, в котором использовалась обработка списков и структуры данных высокого уровня. разумным способом. Они взяли идеи Ньюэлла и Саймона и применили их к компиляторам. Это кружило вокруг всех других вещей, которые мы делали». [Дон Кнут, Устная история CHM, 2007, стр. 9]
  8. ^ Наур, П., изд. (1962). Пересмотренный отчет об алгоритмическом языке АЛГОЛ 60 (PDF) . Международная федерация обработки информации.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 44f990b63fb8583ab73b84eb4d7e1f2f__1718927460
URL1:https://arc.ask3.ru/arc/aa/44/2f/44f990b63fb8583ab73b84eb4d7e1f2f.html
Заголовок, (Title) документа по адресу, URL1:
ALGOL 58 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)