APL | |
---|---|
Класс языка | векторный, функциональный, структурный, модульный |
Появился в | 1964 |
Автор | Кеннет Айверсон |
Разработчик | Кеннет Айверсон и IBM |
Система типов | динамическая |
Основные реализации: | IBM APL2, Dyalog APL, APL2000, Sharp APL, APLX |
Диалекты | A+, Dyalog APL, APLNext |
Испытал влияние | математическая нотация |
Повлиял на | J,[1] K,[2] Mathematica,[3] MATLAB,[3] Nial[en],[4] PPL, Q |
APL (назван по книге A Programming Language)[5] — язык программирования, оптимизированный для работы с массивами, предшественник современных научных вычислительных сред, таких как MATLAB, использует функциональную парадигму программирования.
В своей области применения (физика, математическое моделирование, обработка данных) APL — мощный язык, обладающий кратким и выразительным синтаксисом. Например:
N ← 4 5 6 7 |
Присвоить массиву N значения 4 5 6 7. |
N+4 |
Напечатать значения массива N, увеличенные на 4, то есть 8 9 10 11. |
+/N |
Напечатать сумму элементов массива N, то есть 22. |
Большое количество специальных символов в синтаксисе APL, функциональный стиль и краткие нотации (большинство операций обозначается 1—2 символами специального алфавита) делает программы на APL крайне непонятными для непосвящённых. При этом некоторые знаки — ключевые слова языка вышли за пределы собственно APL и употребляются в научных текстах по математике и информатике (см. Символы Айверсона, Нотация Айверсона).
Язык APL был разработан Кеном Айверсоном, преподававшим тогда в Гарвардском университете, в качестве системы обозначений для описания вычислений. В 1957 вышла его книга «A Program Language»[5], в которой эта нотация была описана. В 1960 году Айверсон продолжал работу над APL в IBM. Здесь этот язык использовался для описания машинной архитектуры.[6][7]
Первой попыткой реализации APL был написанный для IBM 7090 на Фортране в 1965 году интерпретатор IVSYS.[8] Однако, в нём ещё не использовался набор APL-символов, они заменялись ключевыми словами на английском языке. Годом позже этот интерпретатор был портирован на IBM/360. В том же 1966 году APL впервые реализован с использованием специализированного терминала на базе IBM 1050 и печатающего устройства с соответствующей сменной печатной головкой. В 1967 году IBM выпускает на рынок реализацию APL для IBM 1130, известную как APL\1130.[9][10]. Вследствие краткости выражений на APL, у этого языка появились немногочисленные, но преданные сторонники, которые гордились тем, что легко разрабатывали сложные программы.
APL был микропрограммно реализован для портативного компьютера IBM 5100, выпускавшегося в 1973—1982 годах, который иногда называют «первым персональным компьютером». На работу с APL был ориентирован и один из первых ноутбуков — выпущенный в 1985 году Ampere WS-1[11].
В ВЦ АН СССР в начале 80-х годов было разработано оригинальное программное обеспечение для работы с APL на мини-ЭВМ серии СМ-4, СМ-1420 и микро-ЭВМ Электроника-60, ДВК, Электроника-85. Разработчик А. В. Кондрашев. В состав комплекса входили: программный интерпретатор языка АПЛ; микросхемы знакогенератора для поддержки APL-символов на наиболее популярных алфавитно-цифровых мониторах; версия интерпретатора на плате ППЗУ для Электроника-60 и ДВК. Поддерживалась работа с графическими мониторами и графопостроителями, а также использование дисков и принтеров центральной мини-ЭВМ. Наряду с традиционным использованием APL-систем в системах анализа данных, в СССР также разрабатывались программно-аппаратные комплексы для использования в промышленности и атомной энергетике.
В настоящее время язык APL поддерживается практически на всех аппаратных платформах от рабочих станций до наладонных компьютеров. По языку ежегодно проводятся конференции в рамках Association for Computer Machinery (ACM). Дальнейшим развитием APL являются языки J и K.
|month=
(справка)Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .