WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте
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 со специальными символами

В своей области применения (физика, математическое моделирование, обработка данных) 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.

Реализации APL

Открытые

Коммерческие

Примечания

  1. A Bibliography of APL and J. Jsoftware.com. Проверено 3 февраля 2010. Архивировано 23 августа 2011 года.
  2. Kx Systems - An Interview with Arthur Whitney - Jan 2004. Kx.com (4 января 2004). Проверено 3 февраля 2010. Архивировано 23 августа 2011 года.
  3. 1 2 The Growth of MatLab - Cleve Moler (PDF). Проверено 3 февраля 2010. Архивировано 23 августа 2011 года.
  4. About Q'Nial. Nial.com. Проверено 3 февраля 2010. Архивировано 23 августа 2011 года.
  5. 1 2 Iverson, Kenneth E. A Programming Language. — Wiley, 1962. ISBN 0-471-43014-5.
  6. Programming notation in systems design K.E. Iverson, IBM Systems Journal, 1963
  7. A formal description of SYSTEM/360 A.D. Falkoff, K.E. Iverson and E.H. Sussenguth, IBM Systems Journal 3.3, 1964
  8. Abrams, Philip S., An interpreter for «Iverson notation», Technical Report: CS-TR-66-47, Department of Computer Science, Stanford University, August 1966.
  9. Larry Breed (August 2006). “How We Got to APL\1130”. Vector (British APL Association). 22 (3). ISSN 0955-1433. Используется устаревший параметр |month= (справка)
  10. APL\1130 Manual, May 1969
  11. Младшие братья. История самых первых портативных компьютеров

Литература

  • Магариу Н. А. Язык программирования АПЛ. М.: «Радио и связь», 1983. — 96 с.
  • ISO standard 13751 Programming Language APL, Extended

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии