§ 3.2] ЯЗЫКИ И СИСТЕМЫ ПРОГРАММИРОВАНИЯ 197
Во-первых, Алгол задумывался прежде всего как международный
язык для публикаций алгоритмов, поэтому авторы исключили из эта-
лонного языка все, что связано с конкретной реализацией, в частности
процедуры ввода-вывода. Как выяснилось далее, это было серьезным
стратегическим просчетом: в чисто практическом плане Алгол уступал
Фортрану, имевшему развитой механизм форматов внешнего обмена.
Во-вторых, набор типов переменных в Алголе был очень ограничен:
целые, вещественные и булевские скаляры, одномерные и многомерные
массивы. Определение новых типов было невозможно, язык в этом
смысле оказался замкнутым. Поскольку на практике требовались дру-
гие разнообразные типы – комплексные величины, структуры, – то раз-
рабатывались бесчисленные расширения Алгола, ориентированные на
тот или иной класс задач.
В 1962 году за совершенствование Алгола взялась Международная
федерация по обработке информации IFIP – International Federation for
Information Processing. Она организовала комитет по языку следующего
поколения (условное название AlgolX), собрав в нем специалистов с
мировыми именами – К. Хоара из британского Оксфорда; Никлауса
Вирта из швейцарского Цюриха, ван Вейнгаардена (van Wijngaarden) из
Нидерландов и др. Результатом многолетней работы стал Algol-68 (пе-
ресмотренная версия была опубликована в 1974 году, но язык сохранил
традиционное название Algol-68).
С точки зрения теории Алгол-68 был шедевром точности и строй-
ности. В нем были формализованы не только синтаксис, но и семанти-
ка, то есть правила толкования конструкций языка. Допускалось произ-
вольное конструирование новых типов, имелся богатейший механизм
форматного вывода и т.д., словом, в языке было все, до чего могла до-
думаться на тот момент фантазия ученых. Однако ценой этих новшеств
была чрезмерная сложность. Перед окончанием работы среди самих
авторов языка возник раскол. Некоторые считали, что язык получился
слишком громоздким и его нельзя выпускать в свет, но незначительное
большинство настояло на публикации. В итоге описание Алгола-68,
написанное в предельно формализованном стиле, рядовой программист
не мог даже прочитать. Еще большие проблемы возникли с разработкой
компиляторов. Некоторое время вообще было непонятно, возможна ли
в принципе полная реализация языка. И хотя компиляторы в конце кон-
цов были созданы (например, в СССР в середине 1970-х годов коллек-
тивом разработчиков из Ленинградского университета под руково-
дством Бориса Константиновича Мартыненко (р. 1938) и Андрея Нико-