История языка АПЛ (APL) начинается с 1956 г. (ранее, чем АЛГОЛа и ФОРТРАНа), когда Кеннет Э. Айверсон, сотрудник Гарвардского университета (впоследствии сотрудник фирмы IBM и профессор названного университета), заявил о разработке, которая была закончена в 1961 г. Впервые язык был описан в 1962 году в книге Айверсона "A Programming Language" ("Некий язык программирования"), начальные буквы названия книги и дали имя новому языку.
Цель, которую преследовал Айверсон при создании языка (кстати, вначале он не называл его языком программирования), - это разработка компактной системы записи (нотации) для описания алгоритмов прикладной математики. В изобретенной Айверсоном оригинальной нотации большое число специфических соглашений и символов (в его алфавите кроме обычных знаков содержится 58 специфических знаков, таких, как "сапог" "шапка", "посох", "дно" и т.д., и лигатуры, т.е. такие символы, которые возникают при наложении друг на друга двух символов). Соглашения и символы предназначены для точной и сжатой формулировки алгоритмов, которые затем можно вручную интерпретировать на различные языки программирования.
Очевидно, трудности технического характера, связанные с машинным воплощением богатой и всеобъемлющей системы символических обозначений, введенной Айверсоном, не позволили реализовать исходную версию языка на ЭВМ.
Впервые модифицированная версия АПЛ, названная АПЛ/360, была реализована в 1966 г. К. Айверсоном, А. Фалькоффом и группой сотрудников фирмы IBM на вычислительной системе IBM/360. Затем появились другие реализованные подмножества языка (в частности, АПЛ/700 - в машинах фирмы Burroughs), но все они опирались в той или иной степени на первоначальную реализацию 1966 г.
Какие отличительные особенности выделяют язык АПЛ среди других языков, почему с момента первых машинных реализаций не угасает интерес к нему программистов ?
Во-первых, АПЛ - это один из наиболее мощных диалоговых языков, предназначенных для ЭВМ 3-го и 4-го поколений, надо сказать, что он и разрабатывался как диалоговый язык и был воплощен, как только была разработана экспериментальная система разделения времени на IBM/360.
Во-вторых, простота представления данных и отсутствие спецификаций при определении переменных. Основной структурой данных в языке АПЛ является однородный массив, содержащий числа или литеры.
В-третьих, простая обработка структур данных - в языке одинаково просто работать как с единичными элементами, так и с массивами произвольных размеров и структуры. Например, сложение матриц А и В в языке АПЛ записывается просто А+В, в то время как в языках, подобных ФОРТРАНу и АЛГОЛу, для выполнения этой операции потребуется организация двух вложенных циклов (в АПЛ нет понятия цикла) и нескольких операторов. Наличие в АПЛ мощных средств работы с массивами создает особый стиль программирования и определяет силу этого языка.
В-четвертых, в АПЛ используется целый ряд примитивных одноместных и двухместных функций (операций). На основе этих функций вырабатываются разнообразные сложные функции, что создает предпосылки к расширяемости языка.
В-пятых, АПЛ имеет простую синтаксическую структуру. В нем отсутствует понятие главной программы. подпрограммы взаимодействуют друг с другом только через вызовы и во время исполнения, причем каждая подпрограмма состоит из перенумерованных строк, а каждая строка содержит одно выражение.
Язык приобрел широкое применение в сфере образования благодаря возможности диалогового обучения, хотя АПЛ меньше подходит к решению больших программ, в частности к решению экономических и управленческих задач из-за ограниченных структур данных.
В конце 70-х гг. в нашей стране был реализован модифицированный вариант языка АПЛ, получивший название APLVIDEO. Трудности разработки APLVIDEO были аналогичными, что и при первых реализациях, - отсутствие отечественных терминалов с cоответствующей клавиатурой, адекватной соответствующей символике Айверсона. В своем первоначальном варианте система функционировала на ЕС-1022 с пишущей машинкой ЕС-7077 в качестве терминала, в дальнейшем появился дисплейный вариант системы на базе группового коммутатора и 15 терминалов "Видеотон-340".
Черты необычности и своеобразия АПЛ не нашли своего воплощения в языках, созданных позднее (за исключением языка SETL), хотя язык оказал влияние на архитектуру некоторых вычислительных систем, в частности, векторные машинные команды в ЭВМ STAR-100 фирмы Control Data являются аппаратной реализацией операций над массивами в языке АПЛ.
В 1981 г. в Сан-Франциско состоялась конференция по развитию языка АПЛ, где собрались представители многих ведущих фирм. На ней были сформулированы основные направления развития АПЛ, связанные с упрощением языка (обеспечением однообразия, универсальности, простоты понимания программ, краткости и экономичности программирования), и возможности его использования на микро- и мини-ЭВМ. Особо подчеркивалась необходимость стандартизации языка.
//Вычислительная техника и ее применение №11'88