Harvard (1955–1960) in Iverson notation Iverson stayed on at Harvard as an
assistant professor to implement the world's first graduate program in "automatic data processing". It was in this period that Iverson developed notation for describing and analyzing various topics in data processing, for teaching classes, and for writing (with Brooks)
Automatic Data Processing. The first published paper using the notation was
The Description of Finite Sequential Processes, initially Report Number 23 to
Bell Labs and later revised and presented at the Fourth London Symposium on Information Theory in August 1960.
IBM (1960–1980) Iverson joined
IBM Research in 1960 (and doubled his salary). and (with Brooks)
Automatic Data Processing, two books that described and used the notation developed at Harvard. (
Automatic Data Processing and
A Programming Language began as one book "but the material grew in both magnitude and level until a separation proved wise". The result was published in 1964 in a double issue of the IBM Systems Journal, thereafter known as the "grey book" or "grey manual". The book was used in a course on computer systems design at the IBM Systems Research Institute. One hotbed of interest was at
Stanford University which included
Larry Breed,
Phil Abrams,
Roger Moore,
Charles Brenner, all of whom later made contributions to APL. Donald McIntyre, head of geology at
Pomona College which had the first general customer installation of a 360 system, used the formal description to become more expert than the IBM systems engineer assigned to Pomona. With the completion of the formal description Falkoff and Iverson turned their attention to implementation. This work was brought to rapid fruition in 1965 when
Larry Breed and
Phil Abrams joined the project. They produced a FORTRAN-based implementation on the 7090 called IVSYS (for Iverson system) by autumn 1965, first in batch mode and later, in early 1966, in time-shared interactive mode. Subsequently, Breed,
Dick Lathwell (ex
University of Alberta), and Roger Moore (of
I. P. Sharp Associates) produced the System/360 implementation; the three received the
Grace Murray Hopper Award in 1973 "for their work in the design and implementation of APL\360, setting new standards in simplicity, efficiency, reliability and response time for interactive systems." While the 360 implementation work was underway "Iverson notation" was renamed "APL", by Falkoff. The workspace "1 cleanspace" was saved at 1966-11-27 22.53.58
UTC. and outside IBM in 1968. The formal description and especially the implementation drove the evolution of the language, a process of consolidation and regularization in typography, linearization, syntax, and function definition described in
APL\360 History,
The Design of APL, and
Algebra as a Language, are apologias of APL notation. The notation was used by Falkoff and Iverson to teach various topics at various universities and at the IBM Systems Research Institute. and later in
Swarthmore High School. It was also used at the
Hotchkiss School,
Lower Canada College,
Scotch Plains High School, Atlanta public schools, among others. In one school the students became so eager that they broke into the school after hours to get more APL computer time; in another the APL enthusiasts steered newbies to
BASIC so as to maximize their own APL time. Iverson's work at this time centered in several disciplines, including collaborative projects in circuit theory, genetics, geology, and calculus. When the PSC closed in 1974, •
Using the Computer to Compute •
Algebra: An Algorithmic Treatment •
APL in Exposition •
An Introduction to APL for Scientists and Engineers •
Introducing APL to Teachers •
Elementary Analysis •
Programming Style in APL ; Language design & implementation •
A Programming Language •
A Common Language for Hardware, Software, and Applications •
Programming Notation in System Design •
Formalism in Programming Languages •
A Method of Syntax Specification •
A Formal Description of System/360 •
Communication in APL Systems •
The Design of APL • ''APLSV User's Manual'' •
APL Language •
Two Combinatoric Operators •
The Evolution of APL •
The Role of Operators in APL •
The Derivative Operator •
Operators •
Notation as a Tool of Thought In 1980, Iverson left IBM for
I. P. Sharp Associates, an APL
time-sharing company. He was preceded there by his IBM colleagues Paul Berry, Joey Tuttle,
Dick Lathwell, and
Eugene McDonnell. At IPSA, the APL language and systems group was managed by Eric Iverson (Ken Iverson's son);
Roger Moore, one of the APL\360 implementers, was a vice president. Iverson worked to develop and extend APL on the lines presented in
Operators and Functions. The language work gained impetus in 1981 when
Arthur Whitney and Iverson produced a model of APL written in APL (Iverson introduced Arthur Whitney, son of Eoin Whitney, to APL when he was 11 years old The language design was further simplified and extended in
Rationalized APL Work on APL2 proceeded intermittently for 15 years, NARS and APL2 differed in fundamental respects from dictionary APL, and differed from each other. I.P. Sharp implemented the new APL ideas in stages: complex numbers, enclosed (boxed) arrays, match, and composition operators in 1981, SHARP APL/Unix, written in C and based on an implementation by
STSC. The language was as specified in the dictionary with no restrictions on the domains of operators. An alpha version of SAX became available within I.P. Sharp around December 1986 or early 1987. In education, Iverson developed
A SHARP APL Minicourse •
A SHARP APL Minicourse •
Applied Mathematics for Programmers •
Mathematics and Programming ; Language design & implementation •
Operators and Enclosed Arrays •
Direct Definition •
Composition and Enclosure •
A Function Definition Operator •
Determinant-Like Functions Produced by the Dot-Operator •
Practical Uses of a Model of APL •
Rationalized APL •
APL Syntax and Semantics •
Language Extensions of May 1983 •
An Operator Calculus •
APL87 •
A Dictionary of APL •
Processing Natural Language: Syntactic and Semantic Mechanisms Jsoftware (1990–2004) for binomial coefficients Iverson retired from I. P. Sharp Associates in 1987. He kept busy while "between jobs". Regarding language design, the most significant of his activities in this period was the invention of "fork" in 1988. Hui, a classmate of Whitney at the
University of Alberta, had studied
A Dictionary of the APL Language when
he was between jobs, As well, from January 1987 to August 1989 he had access to SAX, and that a total array ordering be defined. One of the objectives was to implement fork. This turned out to be rather straightforward, by the inclusion of one additional row in the parse table. The choice to implement forks was fortuitous and fortunate. It was realized only later that forks made
tacit expressions (operator expressions) complete in the following sense: any sentence involving one or two arguments that did not use its arguments as an operand, can be written tacitly with fork, compose, the left and right identity functions, and constant functions. Two obvious differences between J and other APL dialects are: (a) its use of terms from natural languages instead of from mathematics or computer science (the practice began with
A Dictionary of APL): noun, verb, adverbs, alphabet, word formation, sentence, ... instead of array, function, operator, character set, lexing, expression, ... ; and (b) its use of 7-bit ASCII characters instead of special symbols. Other differences between J and APL are described in
J for the APL Programmer and
APL and J. The J source code is available from Jsoftware under the
GNU General Public License version 3 (GPL3), or a commercial alternative. Eric Iverson founded Iverson Software Inc., in February 1990 to provide an improved SHARP APL/PC product. It quickly became obvious that there were shared interests and goals, and in May 1990 Iverson and Hui joined Iverson Software Inc.; later joined by Chris Burke. The company soon became J only. The name was changed to Jsoftware Inc., in April 2000. •
Programming in J •
Arithmetic •
Calculus •
Concrete Math Companion •
Exploring Math •
J Phrases • ''ICFP '98 Contest Winners'' •
Math for the Layman ; Language design & implementation •
A Commentary on APL Development •
Phrasal Forms •
APL/? •
Tacit Definition •
A Personal View of APL •
J Introduction and Dictionary •
Revisiting Rough Spots •
Computers and Mathematical Notation •
Mathematical Roots of J •
APL in the New Millennium ==Awards and honors==