APL

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

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 у Вікісховищі

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

Відкриті

Комерційні

Див. також


Примітки

  1. A Bibliography of APL and J. Jsoftware.com. Архів оригіналу за 23 серпня 2011. Процитовано 3 лютого 2010.
  2. Kx Systems - An Interview with Arthur Whitney - Jan 2004. Kx.com. 4 січня 2004. Архів оригіналу за 23 серпня 2011. Процитовано 3 лютого 2010.
  3. The Growth of MatLab - Cleve Moler (PDF). Архів оригіналу за 23 серпня 2011. Процитовано 3 лютого 2010.
  4. About Q'Nial. Nial.com. Архів оригіналу за 23 серпня 2011. Процитовано 3 лютого 2010.
  5. Iverson, Kenneth E. (1962). A Programming Language. Wiley. ISBN 0-471-43014-5. Архів оригіналу за 4 червня 2009. Процитовано 19 листопада 2012.
  6. an experimental APL interpreter. NARS2000. Архів оригіналу за 23 серпня 2013. Процитовано 3 лютого 2010.
  7. Dyalog V12 Platforms. Dyalog.com. Архів оригіналу за 3 лютого 2010. Процитовано 3 лютого 2010.
  8. Creveling, C.J. Experimental use of A Programming Language /APL/ at the Goddard Space Flight Center. Goddard Space Flight Center. NASA. Архів оригіналу за 23 серпня 2013. Процитовано 17 червня 2011.
  9. Bergquist, Gary A. (1999). The future of APL in the insurance world. ACM SIGAPL APL Quote Quad (New York, N.Y.) 30 (1): 16–21. ISSN 0163–6006. doi:10.1145/347194.347203.
  10. APLX version 4 – from the viewpoint of an experimental physicist. Vector 23.3. Vector.org.uk. 20 травня 2008. Архів оригіналу за 25 січня 2010. Процитовано 3 лютого 2010.
  11. OOSTATS — A New Approach to Statistics via APL[недоступне посилання з червня 2019]
  12. ACM Award Citation – John Backus. 1977. Awards.acm.org. 3 грудня 1924. Архів оригіналу за 23 серпня 2013. Процитовано 3 лютого 2010.
  13. Agile Approach. Agile Approach. Архів оригіналу за 23 серпня 2013. Процитовано 3 лютого 2010.
  14. Iverson, Kenneth E., «Automatic Data Processing: Chapter 6: A programming language» Архівовано 4 червня 2009 у Wayback Machine., 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

Джерела

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.