СоНоты

Язык программирования Алгол

Название свое "АЛГОЛ" (ALGOL) получил от сокращения слов ALGOritmic Language, что в переводе означает "алгоритмический язык", хотя в начале он назывался ИАЛ (IAL - The International Algebraic Language).

Работы по созданию алгоритмического языка были начаты в 1955 -- 1956 гг. в США Ассоциацией по вычислительной техники (АСМ) и в Европе немецким Обществом прикладной математики и механики (GAMM). В 1958 г. ACM и GAMM подготовили совместный предварительный отчет о языке, который получил название АЛГОЛ-58.

На конференции в Париже в январе 1960 г. после широкого обсуждения представители семи стран - США, ФРГ, Англии, Франции, Дании, Нидерландов и Швейцарии утвердили улучшенную версию языка, названную АЛГОЛ-60. Двумя годами позже на конференции в Риме были сформулированы поправки и дополнения к описанию языка, но свое название (АЛГОЛ-60) он не изменил. Большие заслуги в создании и пропаганде АЛГОЛа принадлежат Д. Бэкусу, П. Науру и другим ученым.

Авторы языка в одном из первых отчетов указали такие цели его создания. Во-первых, новый язык должен быть близок к обычному математическому языку, во-вторых, он должен быть удобен для использования описаний алгоритмов, в-третьих, язык должен быть механически переводимым на машинные языки. Главным образом АЛГОЛ предназначался для решения научных и инженерных задач.

Какие же отличительные черты характеризуют АЛГОЛ?

  1. АЛГОЛ во многих отношениях рассматривается как улучшение такого языка, как ФОРТРАН.
  2. Как язык программирования он был определен независимо от какой-либо машинной реализации.
  3. Ученые получили удобное средство для описания алгоритмов и обмена ими между пользователями.
  4. При создании АЛГОЛа был продемонстрирован новый стиль языкового описания, это первый язык, имеющий строго определенный синтаксис. Идея формально-синтаксической системы записей для языков программирования была введена Бэкусом в 1959 г. (систему стали называть БНФ - Бэкуса нормальная форма).
  5. Появление АЛГОЛа привнесло новые идеи в разработку языков программирования, наиболее существенные из них относятся к блокам и процедурам. АЛГОЛ стал первым языком программирования с блочной структурой. АЛГОЛьные программы представляют собой независимые друг от друга блоки операторов. Имена переменных, процедуры, выполняемые и невыполняемые операторы относятся только к конкретному блоку. Блоки могут быть вложенными друг в друга.

АЛГОЛ оказал значительное влияние на последующие развитие языков высокого уровня, причем выделяют три направления этого влияния. Первое характеризуется расширением языка в области структур и операций (пример -- язык СИМУЛА), второе -- большей степенью формализации и обобщения языка и его описания (пример -- язык АЛГОЛ-68). В третьем -- сохранились стиль и размеры описания АЛГОЛа, но введены новые концепции, которые еще в большей степени сочетают простоту и всеобщность (пример -- язык ПАСКАЛЬ ). На основе АЛГОЛа были разработаны многие диалекты, причем некоторые из них (МАД и ДЖОВИАЛ) в развитии отклонились от своего истока и стали независимыми языками.

В СССР в 1965 г. на базе АЛГОЛ-60 и средств языка КОБОЛ был создан язык АЛГЭК, ориентированный преимущественно для программирования экономических задач. Компилятор с этого языка в первые реализован на ЭВМ "Минск-22". В 1964 -- 1966 гг. также на базе АЛГОЛа был разработан язык АЛГЭМ, предусматривающий собой сокращенный вариант АЛГОЛа-60 с введением величин типа "строчный", строчными выражениями и функциями, составными переменными и массивами. Компилятор с языка реализован также на ЭВМ "Минск-22".

В 1967 г. группой ГАМС (Группа по Автоматизации программирования для Машин Среднего типа), Созданной комиссией многостороннего сотрудничества академий наук социалистических стран, на базе АЛГОЛа-60 была разработана версия АЛГАМС. В дальнейшем эта версия была реализована на ЕС ЭВМ, а в 1976 г. был принят стандарт на язык АЛГАМС (ГОСТ 21551-76).

АЛГОЛ оказал влияние на проектирование архитектуры многих вычислительных систем, в частности, серии компьютеров В5000. К сожалению, АЛГОЛ имеет несколько слабых мест, и главное из них - бедные средства ввода-вывода.

Язык АЛГОЛ-68 разработан в 1968 г. (в переработанном виде - в 1975 г.) с развитыми средствами ввода-вывода, но из-за конкуренции с другими языками он не получил широкого применения.

Анализируя пройденный АЛГОЛом путь, необходимо заметить, что, не смотря на повсеместное использование языка в европейских странах, в США он не нашел широкого распространения. Объясняется это прежде всего коммерческими соображениями: пользователи, затратив значительные средства на ФОРТРАНовское программное обеспечение (незадолго до появление АЛГОЛа), стали противниками каких-либо изменений в своей программистской практике. Этому в немалой степени также "способствовали" успехи и признание компьютеров фирмы IBM, взрастившей ФОРТРАН.