APL
Aspect
APL | |
APL | |
Paradigmă | array, funcțional, structurat, modular |
---|---|
Apărut în | 1964 |
Proiectat de | Kenneth E. Iverson |
Dezvoltator | Kenneth E. Iverson |
Tipare | dynamic |
Implementări majore | Dyalog APL, IBM APL2, APL2000, Sharp APL, APLX, NARS2000,[1] GNU APL[2] |
Dialecte | A+, Dyalog APL, APLNext, ELI, J |
Influențat de | notație matematică |
Influențe | J,[3] K,[4] Mathematica, MATLAB,[5] Nial,[6] PPL, Q, S |
Modifică date / text |
APL (numit după cartea A Programming Language)[7] este un limbaj interactiv orientat către tablouri și un mediu de dezvoltare care este disponibil de la furnizori comerciali și non-comerciali pentru majoritatea platformelor. Se bazează pe o notație matematică inventată de Kenneth E. Iverson.
Combinația unică de trăsături unice sau neobișnuite ale limbajului APL îl clasează printre cele mai productive limbaje de programare:[8]
- Este concis, folosind simboluri în locul cuvintelor și aplicând funcții pe întregul tablou fără a folosi bucle explicite.
- E orientat spre soluționare; cu accentul pe exprimarea algoritmilor independent de arhitectura mașinii sau a sistemului de operare.
- Are o singură regulă recursivă de precedență: argumentul din partea dreaptă a unei funcții e rezultatul întregii expresii din dreapta.
Referințe
[modificare | modificare sursă]- ^ „Nested Arrays Research System - NARS2000: An Experimental APL Interpreter”. NARS2000. Sudley Place Software. Accesat în .
- ^ „GNU APL”. directory.fsf.org. Free Software Directory. Accesat în .
- ^ „A Bibliography of APL and J”. Jsoftware.com. Accesat în .
- ^ „Kx Systems — An Interview with Arthur Whitney — Jan 2004”. Kx.com. . Accesat în .
- ^ „The Growth of MatLab — Cleve Moler” (PDF). Arhivat din original (PDF) la . Accesat în .
- ^ „About Q'Nial”. Nial.com. Accesat în .
- ^ Iverson, Kenneth E. (). A Programming Language. Wiley. ISBN 0-471-43014-5.
- ^ The Future of APL in the Insurance World. Gary A. Bergquist
Lectură suplimentară
[modificare | modificare sursă]- An APL Machine Arhivat în , la Wayback Machine. (1970 Stanford doctoral dissertation by Philip Abrams)
- A Personal History Of APL (1982 article by Michael S. Montalbano)
- McIntyre, Donald B. (). „Language as an intellectual tool: From hieroglyphics to APL” (PDF). IBM Systems Journal. 30 (4). Arhivat (PDF) din originalul de la . Accesat în .
- Iverson, Kenneth E. (). „A Personal view of APL” (PDF). IBM Systems Journal. 30 (4). Arhivat (PDF) din originalul de la . Accesat în .
- A Programming Language by Kenneth E. Iverson
- APL in Exposition by Kenneth E. Iverson
- Brooks, Frederick P.; Kenneth Iverson (1965). Automatic Data Processing, System/360 Edition. ISBN 0-471-10605-4.
- Askoolum, Ajay (august 2006). System Building with APL + Win. Wiley. ISBN 978-0-470-03020-2.
- Falkoff, Adin D.; Iverson, Kenneth E.; Sussenguth, Edward H. (). „A Formal Description of SYSTEM/360” (PDF). IBM Systems Journal. New York. 3 (3). Arhivat (PDF) din originalul de la . Accesat în .
- History of Programming Languages, chapter 14[necesită clarificare]
- Banon, Gerald Jean Francis (). Bases da Computacao Grafica. Rio de Janeiro: Campus. p. 141.
- LePage, Wilbur R. (). Applied A.P.L. Programming. Prentice Hall.
- Mougin, Philippe; Ducasse, Stephane (noiembrie 2003). „OOPAL: Integrating Array Programming in ObjectOriented Programming” (PDF). Proceeding OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications. 38 (11): 65–77. doi:10.1145/949343.949312. Arhivat din original (PDF) la . Accesat în .
- Dyalog Limited (septembrie 2006). An Introduction to Object Oriented Programming For APL Programmers (PDF). Dyalog Limited. Arhivat din original (PDF) la . Accesat în .
Legături externe
[modificare | modificare sursă]- SIGAPL - SIGPLAN Chapter on Array Programming languages
- APL Wiki
- APL2C, a source of links to APL compilers
- TryAPL.org, an online APL primer
- Vector Arhivat în , la Wayback Machine., the journal of the British APL Association
- APL pe Curlie
- Dyalog APL
- IBM APL2
- APL2000
- NARS2000
- GNU APL
- OpenAPL