Experimental use of A Programming Language /APL/ at the Goddard Space Flight Center

C. J. Creveling · NASA STI Repository (National Aeronautics and Space Administration) · 1968

WHAT API, ISAPL is an abbreviation of A Programming Language, a mathematical development of Dr. K. E. Iverson and associates having special attributes for the design and specifications of digital computing systems, both "hardware" and "software."It embraces ordinary computational arithmetic, algebraic formulae, the logical calculus (Boolean Algebra), and has special features for matrix manipulations.Although the language stands on its own as a mental concept, and as such is not implicitly related to any computational device (it is not "hardware oriented"), it has been "implemented" on more than one large scale computer and some smaller ones.This fact is of considerable importance in attempting to assess the future impact on the computer programming field, since APL is capable of competing with other computer languages including such well-established ones as Fortran and Algol. SOME CHARACTERISTICS OF APLBeing a form of mathematical notation, APL has most of the attributes of the more common forms.It is composed of a small number of primitives, and these can be rigorously combined or redefined in terms of each other in a useful manner.Like algebra and trigonometry, this allows a continual refinement of statements, originally long and diffuse, into shorter and more elegant forms.This flexibility and the conciseness to which it leads is useful in that it makes possible the successive compaction of long but well-understood expressions into short recognizable terms.This feature leads to Iverson's "aesthetic criteria" design attribute, wherein the designer (or program writer) is guided as much by his intuitive "feel" for the tractability of his problems as with a strictly rigorous and sysl.,maticdevelopment.APL is easy to learn, because it has a simple syntax, relatively few primitives and new symbols (most of which have a mnemonic structure), and makes a maximum use of existing mathematics.These facts make it approach the condition of being self-documenting, since it is analogous to a .mathematicalderivation in which few marginal notes or parenthetical explanations are required.i { t 1 APL is uncommitted to any particular technology or type of problem.Its character set (available on a "selectric" type ball) can be accommodated by a standard typewriter of approximately 100 characters (upper and lower case).HISTORICAL BACKGROUND APL was introduced to GSFC in 1965 by Dr. E. P. Stabler, University of Syracuse, a summer employee, in the performance of a computer design task.The example of his application of APL to a complex hardware/software design problem excited our interest in seeing if a widespread application of such a so-called Higher-Order Language (HOL) to typical Goddard problems might solve certain outstanding semantic problems endemic in our establishment.These problems of mutual understanding between the several disparate disciplines, forced into cooperative space projects of great complexity, are often referred to as "failure to communicate" or semantic difficulties.The results of these problems are felt in the long and difficult procedures.necessary to eliminate malfunction, nonfunctions, and misfunctions, before and after satellites are launched.Under the press of tight schedules, these problems occasionally degenerate into personal recriminations, when a dispassionate review would probably indicate a mutual misunderstanding based .onan incomplete or ambiguous specification at an interdisciplinary interface.Dr. Stabler's thesis, taken from Dr. K. E. Iverson, author of A Programming Language (Wiley, 1962), is that APL, being basically a form of mathematics, and amenable to standard mathematical manipulation, is precise, comprehensive, and can be understood by physicists, engineers, and computer programmers alike.It embraces standard computational notation, Boolean operators, logical calculus, and has some novel features of particular power in matrix manipulations and in standard computer operation (such as sorting, listing, etc.).Following these principles, the Information Processing Division and the Employee Development Branch (MUD) sponsored a short course in Higher-Order Languages.This course, taught at Goddard in April 1966 by Dr. Yaohan Chu of the University of Maryland, explored the applicability of several computer languages to digital design and computational problems.Since the results of the course were generally favorable, we organized a Higher-Order Language Seminar, held at GSFC June 16, 1966, under the chairmanship of Dr. George H. Ludwig.Panelists were Dr. K.

Read the paper · More papers on PaperTik