APL

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
APL
Парадигма: масивоорієнтована, функціональна, структурна, модульна
Дата появи: 1964
Творці: Кенет Іверсон
Розробник: Кенет Іверсон
Система типізації: динамічна
Основні реалізації: IBM APL2, Dyalog APL, APL2000, Sharp APL, APLX
Діалекти: A+, Dyalog APL, APLNext
Під впливом від: математична нотація
Вплинула на: J,[1] K,[2] Mathematica, MATLAB,[3] Nial,[4] PPL, Q

APL (вимовляють «ей-пі-ель», названа за книгою A Programming Language)[5] — це інтерактивна масивоорієнтована мова програмування та інтегроване середовище розробки, що доступні від низки розробників[6] і для більшості комп'терних платформ.[7] Вона ґрунтується на математичній нотації, винайденій Кеннетом Айверсоном і його колегами, що пропонує спеціальні засоби для проектування і розробки цифрових обчислювальних систем, як апаратного забезпечення так і програм.[8]

APL має поєднання унікальних і порівняно рідкісних функцій, які привертають увагу програмістів і роблять її плідною мовою програмування:[9]

  • Вона лаконічна, використовує символи, а не слова і застосовує функції до всіх масивів без використання явних циклів.
  • Абстрактна, орієнтована на вирішення задач, орієнтована на написання програм незалежних від архітектури комп'ютера або операційної системи.
  • Має одне просте, послідовне і рекурсивне правило пріоритету: правий аргумент функції — це результ всього виразу праворуч від неї.
  • Це полегшує вирішення проблем на високому рівні абстракції.

APL використовують в науковій[10], актуарній[9], статистичній[11] і фінансовій сферах, де вона застосовується практиками для своїх задач і програмістами для розробки комерційних застосувань. Свого часу вплинула на розвиток електронних таблиць, функціонального програмування,[12] і математичні пакети програм.[3] Вона також надихнула винахідників декількох інших мов програмування.[1][2][4] Її також пов'язують з швидким і легким розвитком проектів в нестабільному бізнес-середовищі.[13]

Історія[ред.ред. код]

Клавіатура APL зі спеціальними символами

Перше втілення того, що пізніше перетворилося на мову програмування APL, було опубліковане і формалізоване в A Programming Language,[5], книзі, що описує нотацію винайдену 1957 року Кеннетом Е. Айверсоном в Гарвардському університеті. Айверсон розробив математичну нотацію для роботи з масивами, якої він навчав своїх учнів.

1960 року він почав працювати на IBM, і, працюючи з Адіном Фалкофом, створив APL на основі своєї нотації. Вона була використана всередині IBM для коротких дослідних звітів на комп'ютерних системах, таких як Burroughs B5000 і його стековому механізмі, коли стекові машини оцінювалися порівняно з регістровими машинами IBM з метою розробки майбутніх комп'ютерів.

Крім того, 1960 року Айверсон уже використовував свою нотацію в чернетках 6-ої глави, що називалася «Мова програмування» для книги, яку він писав з Фредом Бруксом, Automatic Data Processing, яка потім буде опублікована 1963 року.[14][15]

1962 року відома перша спроба використати нотацію для стандартизації набору інструкцій для машин, які пізніше стали сімейством IBM System/360.

1963 року д-р Герберт Хеллерман, що працював в науково-дослідному інституті IBM Systems, реалізував частину позначень на комп'ютері IBM 1620, і він був використаний студентами в спеціальному курсі середньої школи для розрахунків трансцендентних функцій підсумовуванням рядів. Студенти випробували свій код в трансляторі доктора Хеллермана. Цю реалізація частини позначень називають PAT (Personalized Array Translator).[16]

1963 року Фалькоф, Айверсон, та Едвард Сассенгут, що на той час працювали на IBM, використали нотацію для формального опису архітектури і функціональності серії машин IBM System/360, що зрештою втілилося в статті, опублікованій в IBM Systems Journal 1964 року. Після публікації команда звернула свою увагу на втілення нотації в комп'ютерній системі. Одним з мотивів для цього фокусу на реалізації був інтерес з боку John L. Lawrence, який мав нові обов'язки в Science Research Associates, освітній компанії, купленій IBM 1964 року. Лоуренс попрохав Айверсона і його групу, щоб вони допомогли із використанням мови як інструменту для розробки та використання комп'ютерів в освіті.[17]

Після того, як Lawrence M. Breed і Philip S. Abrams зі Стенфордського університету приєднався до команди IBM Research, вони продовжували свої попередні роботи з реалізації запрограмованих в FORTRAN IV частини нотацій, що було зроблено для IBM 7090 під управлінням операційної системи IBSYS. Ця робота була закінчена в кінці 1965 року і пізніше стала відома як IVSYS (Iverson System, система Айверсона). Основи цієї реалізації були докладно описані Abrams в Stanford University Technical Report, «An Interpreter for Iverson Notation» in 1966.[18], Як і система PAT Геллермана раніше, ця реалізація не включала набір символів APL, але використовувала спеціальні зарезервовані слова англійською для функцій і операторів. Система була пізніше адаптована для системи з розділенням часу і, в листопаді 1966 року, була перепрограмована для комп'ютерів IBM/360 Model 50, що працювали в режимі розділення часу, і далі була використана всередині IBM.[19]


Реалізації APL[ред.ред. код]

Відкриті[ред.ред. код]

Комерційні[ред.ред. код]

|openapl|OpenAPL}}

Див. також[ред.ред. код]


Примітки[ред.ред. код]

  1. а б «A Bibliography of APL and J». Jsoftware.com. Архів оригіналу за 2011-08-23. Процитовано 2010-02-03. 
  2. а б «Kx Systems - An Interview with Arthur Whitney - Jan 2004». Kx.com. 2004-01-04. Архів оригіналу за 2011-08-23. Процитовано 2010-02-03. 
  3. а б «The Growth of MatLab - Cleve Moler» (PDF). Архів оригіналу за 2011-08-23. Процитовано 2010-02-03. 
  4. а б «About Q'Nial». Nial.com. Архів оригіналу за 2011-08-23. Процитовано 2010-02-03. 
  5. а б Iverson, Kenneth E. (1962). A Programming Language. Wiley. ISBN 0-471-43014-5. 
  6. «an experimental APL interpreter». NARS2000. Архів оригіналу за 2013-08-23. Процитовано 2010-02-03. 
  7. «Dyalog V12 Platforms». Dyalog.com. Архів оригіналу за 3 February 2010. Процитовано 2010-02-03. 
  8. Creveling, C.J. «Experimental use of A Programming Language /APL/ at the Goddard Space Flight Center». Goddard Space Flight Center. NASA. Архів оригіналу за 2013-08-23. Процитовано 2011-06-17. 
  9. а б The future of APL in the insurance world // ACM SIGAPL APL Quote Quad, 30 (1999) (1) С. 16–21. — DOI:10.1145/347194.347203.
  10. «APLX version 4 – from the viewpoint of an experimental physicist. Vector 23.3». Vector.org.uk. 2008-05-20. Архів оригіналу за 25 January 2010. Процитовано 2010-02-03. 
  11. OOSTATS — A New Approach to Statistics via APL
  12. «ACM Award Citation – John Backus. 1977». Awards.acm.org. 1924-12-03. Архів оригіналу за 2013-08-23. Процитовано 2010-02-03. 
  13. «Agile Approach». Agile Approach. Архів оригіналу за 2013-08-23. Процитовано 2010-02-03. 
  14. Iverson, Kenneth E., «Automatic Data Processing: Chapter 6: A programming language», 1960, DRAFT copy for Brooks and Iverson 1963 book, «Automatic Data Processing».
  15. Brooks, Fred; Iverson, Kenneth, (1963), Automatic Data Processing, John Wiley & Sons Inc.
  16. Hellerman, H., «Experimental Personalized Array Translator System», Communications of the ACM, 7, 433 (July, 1964).
  17. Falkoff, Adin D.; Iverson, Kenneth E., «The Evolution of APL», ACM SIGPLAN Notices 13, 1978-08.
  18. Abrams, Philip S., An interpreter for «Iverson notation», Technical Report: CS-TR-66-47, Department of Computer Science, Stanford University, August 1966.
  19. Haigh, Thomas, «Biographies: Kenneth E. Iverson», IEEE Annals of the History of Computing, 2005

Посилання[ред.ред. код]

Посилання[ред.ред. код]