Язык Программирования Apl

«В ближайшем будущем стоимость компьютерного оборудования, необходимого для запуска и работы программы, будет ничтожно мала по сравнению со стоимостью труда программиста, поэтому имеет смысл разрабатывать языки программирования, которые хотя и более требовательны к ресурсам компьютера, но позволяют нам, чтобы минимизировать объем кода», — примерно так рассуждал доктор Джим Браун, возглавлявший в середине 80-х группу APL разработчиков IBM. Что ж, его прогнозы оправдались лишь частично.

Сейчас APL используется, и весьма успешно, для программирования финансовых и научных расчетов, входит в состав платформы .

NET и занимает 33-е место в индексе TIOBE по состоянию на ноябрь 2010 года (рейтинг 0,366%).

APL действительно позволяет минимизировать объем кода, а программировать на нем легко и приятно, но его синтаксис настолько отличается от всех других популярных языков программирования, что отпугивает большинство «потенциальных фанатов».

Постараюсь познакомить вас с APL поближе, язык достаточно полезный, и, несмотря на пугающие на первый взгляд «заморочки», он логичен, красив, а для программирования математических расчетов и операций с большими объемами данных, это также лучший выбор инструмента разработки.

Итак, APL, аббревиатура расшифровывается очень просто: Язык программирования.

Идея языка пришла Кеннету ?.

Айверсону в 1957 году, когда он работал в Гарвардском университете, и была реализована во время его работы в IBM в 1964 году.

Пик использования APL пришелся на середину 80-х годов, когда появилось множество версий языка и диалектов.

, в том числе для микроконтроллеров.

В какой-то момент даже корпорация Microsoft планировала выпустить свою версию APL, но по неизвестным причинам этот релиз так и не состоялся.

В начале 80-х появилась новая версия языка — APL2, которую создала группа разработчиков IBM под руководством доктора Джима Брауна.

Эта версия стала основой современной АПЛ.

Сейчас существует около дюжины различных интерпретаторов APL. Основные из них — Dyalog APL, APL Now и MicroAPL, все три работают с Windows, Unix и Linux, а последний еще и с MacOS (далее я приведу примеры с использованием Dyalog APL, кроме того, студенты могут бесплатно скачать этот интерпретатор с сайта Сайт Диалога: dss.dyalog.com/edu ).

Поскольку в среде APL используется множество нестандартных символов, для разработки используется специальная раскладка клавиатуры.

В последних версиях Dyalog APL специальные символы уже отображаются прямо на панели приборов, и их легко выбрать, просто нажав на нужный символ.



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



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

Итак, зачем нам все это? Основными особенностями и преимуществами языка являются следующие: 1. Кроссплатформенные реализации.

2. Вычисления происходят справа налево, а вычисленный результат присваивается функции слева.

Позволь мне привести пример:

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

3. Объем кода минимизирован за счет использования специальных символов и того, что все операции можно производить непосредственно над массивом, т.е.

нет необходимости использовать циклы.

Например, давайте создадим массив, найдем сумму всех элементов массива, найдем длину массива, а затем увеличим каждый элемент массива на 1 + номер элемента массива.



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

Благодаря этим правилам APL по сути позволяет реализовать любую функцию в одной строке кода.

Один друг реализовал множество Мандельброта на APL, и Здесь скачать реализацию знаменитой игры «Жизнь» можно, естественно тоже одной строчкой кода.

Еще один огромный плюс – возможность работы с большими матрицами.

Клиенты, которые используют наш программный продукт (а клиентами являются инвестиционные банки, пенсионные фонды, банковские альянсы), часто имеют данные в матрицах размерностью 100 000 по одной оси.

APL позволяет выполнять различные математические операции над такими матрицами без потери производительности.

Конечно, есть и недостатки.

Главный из них, как уже не раз упоминалось, — необычный синтаксис.

Долгое время APL вообще считался «языком только для записи», поскольку понять написанный код довольно сложно.

В настоящее время используется лишь малая часть возможностей языка, поэтому можно обойтись несколькими наиболее важными символами и вообще инкапсулировать код APL внутри .

Net-библиотек.

Изначально APL был функционально-модульным языком программирования, хотя современный APL и поддерживает ООП, но написание полностью объектно-ориентированного кода будет, мягко говоря, не очень простым и читабельным.

Однако стоит иметь в виду тот факт, что язык поддерживает возможность создания сложных объектов.

В принципе, современный APL позволяет создать графический интерфейс (не дай Бог вам это сделать), и что приятно, он поддерживает XML и лямбда-выражения.

Я приведу вам еще несколько примеров, чтобы вы могли почувствовать язык.

APL предоставляет очень мощные механизмы для работы с массивами и матрицами.

Элементы массива могут быть любого типа, массивы могут иметь любой уровень вложенности, и вы можете легко добраться до любого элемента массива.

Создадим матрицу 10 на 10 и заполним ее элементами от 1 до 100. Доступ к строкам матрицы стандартный:

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

Теперь создадим массив из трёх элементов: числа, строки и нашей матрицы.

Мы можем легко получить доступ к любому элементу массива.

Поменяем вторую букву в строке и последний элемент матрицы (изменился только массив, матрица мата не изменилась).



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

Чтобы создать функцию, просто введите ее название и дважды щелкните по ней мышкой – функция откроется в отдельном окне.

Все, что идет слева и справа от имени функции, является аргументами, результат — это то, что идет слева от символа присваивания.

Результат возвращается в переменную с тем же именем, что указано в первой строке.

В APL подписью функции является только ее имя.

Я создаю функцию, которая принимает один аргумент и возвращает его приращение.



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



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

Отдельно стоит отметить отладчик APL. Изменять значения переменных и перемещаться по стеку можно прямо во время выполнения, что не может не радовать.

Вам просто нужно переключиться из режима трассировки в режим редактирования.

Я меняю переменную a на 1 перед выполнением последней строки функции, справа окно Watch, в котором значение переменной res равно:

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

Вы можете показать множество примеров, но самый простой вариант — скачать Dyalog APL и попробовать самостоятельно.

При этом ознакомьтесь со стандартными функциями, представленными символами.

При наведении курсора на символ появляется информация о его функции и использовании.



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

Анализатор языка проверяет введенную строку справа налево, пока не встретит первую функцию (символ).

Затем он проверяет, есть ли аргументы слева от функции.

Если аргументов нет, то символ используется в своем единственном значении (монадическом), но если слева есть аргументы, то используется двоичное значение.

Пример: этот символ либо округляет в большую сторону, либо выбирает максимум два элемента.



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

Я думаю, этой информации должно быть достаточно, чтобы вы самостоятельно освоились с языком.

В заключение могу порекомендовать еще несколько видеоуроков.

Надеюсь, мне удалось вас заинтересовать, потому что кажется несправедливым, что про АПЛ нет русскоязычных статей и вообще она у нас совершенно непопулярна.

И, конечно же, я постараюсь ответить на ваши вопросы и/или комментарии.

Теги: #язык программирования #APL #Функциональное программирование #финансовое программирование #программирование

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.