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

Материал из Википедии — свободной энциклопедии
Версия от 14:39, 3 декабря 2025; imported>Lê Lợi (bot) (Автодевикификация Шаблон:Языки программирования.)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Шаблон:Значения Шаблон:Карточка языка программирования

APL (назван по книге A Programming Language)<ref name="aplbook">Шаблон:Cite webШаблон:Cite web</ref> — язык программирования, оптимизированный для работы с массивами, предшественник современных научных вычислительных сред, таких как MATLAB, использует функциональную парадигму программирования.

Файл:APL-keybd2.svg
Клавиатура 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»<ref name="aplbook" />, в которой эта нотация была описана. В 1960 году Айверсон продолжал работу над APL в IBM. Здесь этот язык использовался для описания машинной архитектуры.<ref>Шаблон:Cite web</ref><ref>Шаблон:Cite web</ref>

Первой попыткой реализации APL был написанный для IBM 7090 на Фортране в 1965 году интерпретатор IVSYS.<ref>Abrams, Philip S., An interpreter for «Iverson notation» Шаблон:Wayback, Technical Report: CS-TR-66-47, Department of Computer Science, Stanford University, August 1966.</ref> Однако, в нём ещё не использовался набор APL-символов, они заменялись ключевыми словами на английском языке. Годом позже этот интерпретатор был портирован на IBM/360. В том же 1966 году APL впервые реализован с использованием специализированного терминала на базе Шаблон:Нп3 и печатающего устройства с соответствующей сменной печатной головкой. В 1967 году IBM выпускает на рынок реализацию APL для Шаблон:Нп3, известную как APL\1130.<ref>Шаблон:Статья</ref><ref>APL\1130 Manual Шаблон:Wayback, May 1969</ref>. Вследствие краткости выражений на APL у этого языка появились немногочисленные, но преданные сторонники, которые гордились тем, что легко разрабатывали сложные программы.

APL был микропрограммно реализован для портативного компьютера IBM 5100, выпускавшегося в 1973—1982 годах, который иногда называют «первым персональным компьютером». На работу с APL был ориентирован и один из первых ноутбуков — выпущенный в 1985 году Шаблон:Нп4<ref>Шаблон:Cite web</ref>.

В ВЦ АН СССР в начале 80-х годов было разработано оригинальное программное обеспечение для работы с APL на мини-ЭВМ серии СМ-4, СМ-1420 и микро-ЭВМ Электроника-60, ДВК, Электроника-85. Разработчик — А. В. Кондрашев. В состав комплекса входили: программный интерпретатор языка APL; микросхемы знакогенератора для поддержки APL-символов на наиболее популярных алфавитно-цифровых мониторах; версия интерпретатора на плате ППЗУ для Электроники-60 и ДВК. Поддерживалась работа с графическими мониторами и графопостроителями, а также использование дисков и принтеров центральной мини-ЭВМ. Наряду с традиционным использованием APL-систем в системах анализа данных, в СССР также разрабатывались программно-аппаратные комплексы для использования в промышленности и атомной энергетике.

В настоящее время язык APL поддерживается практически на всех аппаратных платформах от рабочих станций до наладонных компьютеров. По языку ежегодно проводятся конференции в рамках Association for Computer Machinery (ACM). Дальнейшим развитием APL являются языки J и K.

Реализации APL

Открытые

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

Примеры

Hello, world

<syntaxhighlight lang="apl"> 'Hello, world' </syntaxhighlight>

Поиск простых чисел от 1 до R

<syntaxhighlight lang="apl"> (~R∊R∘.×R)/R←1↓⍳R </syntaxhighlight>

Сортировка

<syntaxhighlight lang="apl"> X[⍋X+.≠' ';] </syntaxhighlight>

<syntaxhighlight lang="apl"> life ← {⊃1 ⍵ ∨.∧ 3 4 = +/ +⌿ ¯1 0 1 ∘.⊖ ¯1 0 1 ⌽¨ ⊂⍵} </syntaxhighlight>

Удаление тегов HTML

<syntaxhighlight lang="apl">

txt←'<html><body>

This is emphasized text.

</body></html>'

     {⍵ /⍨ ~{⍵∨≠\⍵}⍵∊'<>'} txt

This is emphasized text. </syntaxhighlight>

Примечания

Шаблон:Примечания

Литература

Ссылки

Шаблон:Перевести