Abstract
I first began developing a formal language for use in teaching in the graduate program in
Automatic Data Processing
established by Professor Howard Aiken at Harvard in 1955. This language, now known as APL, has since passed through several phases, the main ones being documented in three publications [1-3]; my book
A Programming Language
in 1962, the APL\360 manual in 1968, and the APLSV manual in 1975. The last two were co-authored with A.D. Falkoff.
The specifications of the language provided by these publications were later supplemented by more philosophical studies that discussed the design principles followed, and the major design choices made. These include
The Design of APL
[4], and the
Evolution of APL
[5], by me and Falkoff, and
The Story of o
, by E.E. McDonnell [6].
Because of implementations produced by various manufacturers, and because of attempts to inject aspects of other languages (as in APLGOL), many diverse lines of development have been pursued. These have been largely reported in manuals, in the proceedings of APL conferences, and in journals such as
APL Quote-Quad
(Association for Computing Machinery), and
Vector
(British Computing Society).
In 1978 I began a line of development which has been reported largely in documents internal to IBM Corp. [7] and to I.P. Sharp Associates [8-10], but also in APL conferences [11-13]. This work has culminated in
A Dictionary of APL
, scheduled to appear in an early issue of APL Quote-Quad [14]; in what follows it will be referred to as “the dictionary”.
The present paper is a companion study in the manner of [4-6]. A preview of it was presented in November of last year at an internal IBM conference that commemorated the 20th anniversary of the initiation of the APL timesharing service within IBM.
The major points to be discussed here include terminology, the APL alphabet, word formation, parsing rules, mixed functions, operators, and localization. In discussing decisions made in the early days by me and colleagues in the APL group in the T.J. Watson Research Center, (notably A.D. Falkoff and L.M. Breed), I will use the term we; this usage is not meant to imply their agreement with the current thinking of myself and present colleagues at I.P. Sharp Associates as presented in the dictionary.
Although there is no current implementation of the entire dictionary, several implementations embody significant parts of it, such as the application of operators to derived and user-defined functions, and the production of “mixed” arrays by expressions such as 3 4 5, '
ABCD
'. Two implementations [13, 15] are particularly close to the dictionary; the latter was used in all executed examples in this paper.
Publisher
Association for Computing Machinery (ACM)
Reference18 articles.
1. Falkoff A.D. and K.E. lverson. APL\360 User's Manual IBM Corporation August 1968. Falkoff A.D. and K.E. lverson. APL\360 User's Manual IBM Corporation August 1968.
2. Falkoff A.D. and K.E. fverson The Design of APL A Source Book Ln APL APL Press 1981. Falkoff A.D. and K.E. fverson The Design of APL A Source Book Ln APL APL Press 1981.
3. The evolution of APL
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Representations of recursion;ACM SIGAPL APL Quote Quad;1995-06-08
2. Rank and uniformity;ACM SIGAPL APL Quote Quad;1995-06-08
3. Compiling APL;Arrays, Functional Languages, and Parallel Systems;1991
4. Indexing and merging in APL;ACM SIGAPL APL Quote Quad;1987-12