Алгол 68

Алгол 68 (Algol 68) — императивный язык программирования высокого уровня общего назначения, последняя версия языка Алгол. В 1966 году рабочая группа IFIP (WG 2.1) начала разработку преемника языка Алгол 60, дав ему первоначальное название Algol Y. Основным требованием к языку была возможность создавать новые подпрограммы во время исполнения, что приближало бы язык по выразительности к LISP. Работа была закончена в 1968 году. Новый язык сильно отличался от предшественника, как по синтаксису, так и по стилю программирования. Алгол 68 часто рассматривают как самостоятельный язык.
По сравнению с Алголом 60 язык стал более строгим и формализованным; появились раздельная компиляция, структуры данных, перегрузку операторов, расширяемая библиотека ввода/вывода, поддержка динамической памяти (в дополнение к стеку) и автоматической сборки мусора. Многие конструкции из Алгола 60 не были включены в Алгол 68 (например, цифровые метки). В 1975 году WG 2.1 опубликовала пересмотренный отчет о языке, на этом ее деятельность прекратилась. Вплоть до 1980 года выходили реализации Алгола 68 с незначительными расширениями, несовместимыми между собой. В 2001 году голландский исследователь Марсель ван дер Веер (Marcel van der Veer) разработал интерпретатор Алгола 68 — Algol 68 Genie, распространяемый по лицензии GPL и работающий под Linux, UNIX, BSD, Mac OS. В ноябре 2005 года вышла версия 8.1 интерпретатора Algol 68 Genie.
Алгол 68 применяется для создания приложений среднего размера, существуют его реализации для системного программирования. Последняя известная реализация языка — ALGOL 68 Genie (последняя версия 8.1, ноябрь 2005), интерпретатор, работающий под Linux, UNIX, BSD и MacOS. Алгол 68, как и Ада — один из немногих языков, синтаксически поддерживающих параллельное программирование. Основной минус Алгола 68 — слабые возможности по связи с модулями на других языках программирования и внешними компонентами, такими, как базы данных или графический интерфейс. Несмотря на раздельную компиляцию процедур, отсутствуют директивы включения. Хотя язык поддерживает структуры данных и перегрузку операторов, он не является объектно-ориентированным, поскольку не реализованы наследование, инкапсуляция и полиморфизм. Хотя язык стал мощнее по сравнению с Алголом 60, он стал сложным для обучения и эффективной реализации. Поэтому, а также из-за плохо реализованной модульности, Алгол 68 так же, как и его предшественник, не приобрел популярности.
Статья находится в рубриках
Яндекс.Метрика