APL87

  • Authors:
  • Kenneth E. Iverson

  • Affiliations:
  • I.P. Sharp Associates

  • Venue:
  • APL '87 Proceedings of the international conference on APL: APL in transition
  • Year:
  • 1987

Quantified Score

Hi-index 0.00

Visualization

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.