Kenneth E. Iverson
Kenneth E. Iverson | |
|---|---|
| Born | Kenneth Eugene Iverson Template:Birth date near Camrose, Alberta, Canada |
| Died | October 19, 2004 (aged 83) Toronto, Canada |
| Occupation | Computer scientist |
| Years active | 1955–2004 |
| Known for | Creating the APL programming language |
Kenneth Eugene Iverson (December 17, 1920 – October 19, 2004) was a distinguished Canadian computer scientist best known for creating the programming language APL. He was honored with the Turing Award in 1979 for his groundbreaking contributions to programming languages and mathematical notation, which culminated in APL. His efforts also significantly impacted interactive computing environments, the educational use of APL, and the theoretical foundations of programming languages.
Life
Ken Iverson entered the world on December 17, 1920, near Camrose, Alberta, Canada. His family were farmers who had relocated from North Dakota and traced their lineage back to Trondheim, Norway.
During World War II, Iverson served in both the Canadian Army and the Royal Canadian Air Force. He completed a Bachelor of Arts at Queen's University, followed by a Master of Science and a Ph.D. at Harvard University. Throughout his career, he held roles at Harvard, IBM, I. P. Sharp Associates, and Jsoftware Inc. (previously Iverson Software Inc.).
On October 16, 2004, while engaged in developing a new laboratory for the J language, Iverson suffered a stroke. He died three days later in Toronto at age 83.
Education
Iverson started formal education on April 1, 1926, attending a one-room schoolhouse and rapidly progressed to Grade 4 by June 1927. He discontinued schooling after Grade 9 during the Great Depression to assist with family farm work, deliberately avoiding further education as he did not wish to pursue teaching. At age 17, he undertook a radio correspondence program through De Forest Training and independently studied calculus using a textbook. While serving in the Royal Canadian Air Force during World War II, he completed correspondence courses aimed at obtaining his high school diploma.
Following military service, Iverson enrolled at Queen's University under government programs supporting veterans and graduated with top honors in 1950 with a Bachelor's degree in mathematics and physics. He then pursued graduate studies at Harvard University, earning a Master's degree in 1951 from the Mathematics Department before transitioning to Engineering and Applied Physics. There, he collaborated with notable figures such as Howard Aiken and Wassily Leontief.
Iverson characterized his graduate work under Aiken as an apprenticeship that honed intellectual precision and academic rigor. Howard Aiken was known for developing the Harvard Mark I, an early large-scale digital computer, while Wassily Leontief advanced the influential input–output model in economics, eventually receiving a Nobel Prize. Iverson programmed matrix computations for Leontief’s model on the Harvard Mark IV computer and completed his Ph.D. in applied mathematics in 1954 with a dissertation based on this research.
During his time at Harvard, Iverson formed an acquaintance with fellow graduate student Eoin Whitney from Alberta, who was recognized twice as a Putnam Fellow. This relationship would later play a role in their professional endeavors.
Harvard (1955–1960)
Iverson continued his tenure at Harvard as an assistant professor, where he initiated the world's inaugural graduate curriculum in "automatic data processing".[1] During this period, he created a unique notation system tailored for data processing, refining traditional mathematical symbols to better address computational and business applications. This system incorporated matrix algebra from his doctoral work, tensor calculus, operators influenced by Heaviside's contributions to Maxwell's equations, and advanced higher-order functions.[2]
In 1957, Iverson's notation underwent practical evaluation within the corporate environment during a sabbatical at McKinsey & Company.[3] Its first documented usage was in The Description of Finite Sequential Processes, initially a Bell Labs report that was subsequently presented at the Fourth London Symposium on Information Theory in 1960.[4]
Despite these groundbreaking developments, Iverson did not achieve tenure at Harvard, reportedly due to a relatively modest publication record beyond his original book.[5]
IBM (1960–1980)
In 1960, Iverson joined IBM Research, receiving a salary increase of twice his previous amount. Encouraged by Fred Brooks, who preceded him and motivated him to pursue his interests, Iverson completed and published A Programming Language alongside Automatic Data Processing (co-authored with Brooks), foundational works outlining the notation he had developed at Harvard. Initially combined, these texts were later separated due to their expanding content.
At IBM, Iverson formed a long-term collaboration with Adin Falkoff that lasted twenty years. The second chapter of A Programming Language demonstrated the application of Iverson's notation on the IBM 7090. In 1963, Falkoff, Iverson, and Ed Sussenguth produced a formal specification of the IBM System/360 architecture, published in 1964 as the so-called "grey book" within the IBM Systems Journal. This rigorous description attracted talented researchers from institutions such as Stanford University and Pomona College, enriching expertise in systems engineering.
Following this formalization, Falkoff and Iverson concentrated on implementation efforts. By fall 1965, Larry Breed and Phil Abrams developed IVSYS—a FORTRAN-based implementation on the 7090—starting as a batch system and evolving into a time-shared interactive environment by early 1966. Subsequently, Breed, Dick Lathwell (formerly of University of Alberta), and Roger Moore (from I. P. Sharp Associates) created the System/360 implementation; their work earned them the Grace Murray Hopper Award in 1973 for pioneering interactive system design standards. During this timeframe, Falkoff renamed "Iverson notation" to "APL". The APL\360 service was introduced internally at IBM in late 1966 and made available externally by 1968.
The formal description alongside its implementation guided APL's development—refining typography, syntax rules, and function definitions—as chronicled in APL\360 History, The Design of APL, and The Evolution of APL. Influential papers such as Conventions Governing the Order of Evaluation and Algebra as a Language defended APL’s symbolic approach.
Falkoff and Iverson employed APL extensively in academic settings and at IBM's Systems Research Institute. Iverson also brought APL into high schools including Fox Lane High School and Swarthmore High School. Early adopters used it for formal methods instruction at NASA Goddard. Educational institutions like Hotchkiss School, Lower Canada College, Scotch Plains High School, and Atlanta public schools integrated APL into their curricula. Student engagement often surpassed expectations; some even resorted to unauthorized access to secure additional computer time.
In 1969, Iverson and his team founded the IBM Philadelphia Scientific Center (PSC). Honored as an IBM Fellow in 1970, Iverson utilized this position to attract visiting scholars from various disciplines—such as Donald McIntyre from Pomona College—to explore applications of APL across fields including circuit theory, genetics, geology, and calculus. After PSC closed in 1974, some members relocated to California; Iverson stayed on the East Coast before returning to IBM Research. He was awarded the prestigious Turing Award in 1979.
Below is a list of Iverson’s IBM publications demonstrating his dual commitment to education and language design:
- Education
- Automatic Data Processing
- Elementary Functions: An Algorithmic Treatment
- The Use of APL in Teaching
- 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
- APL\360 User's Manual
- Communication in APL Systems
- The Design of APL
- APL as an Analytic Notation
- APLSV User's Manual
- APL Language
- Two Combinatoric Operators
- The Evolution of APL
- Operators and Functions
- The Role of Operators in APL
- The Derivative Operator
- Operators
- Notation as a Tool of Thought
I. P. Sharp Associates (1980–1987)
In 1980, Iverson became part of I. P. Sharp Associates (IPSA), a company specializing in APL time-sharing, soon joined by former IBM colleagues Paul Berry, Joey Tuttle, Dick Lathwell, and Eugene McDonnell. The leadership of the APL language and systems division was under Eric Iverson, son of Ken Iverson, with Roger Moore—an implementer of APL\360—serving as vice president.
While at IPSA, Iverson advanced APL by incorporating ideas from Operators and Functions. In 1981, alongside Arthur Whitney, he created an APL model expressed in APL itself during their work on the OAG database project. This collaboration led to the introduction of the rank operator by Whitney. The language further developed with the release of Rationalized APL in 1983 and several editions of A Dictionary of the APL Language up to 1987. Within IPSA, the term "dictionary APL" designated the language defined in A Dictionary of APL, characterized by a rigorously defined syntax governed by a 9-by-6 matrix and lexing primitives.
Throughout the 1970s and 1980s, IBM, STSC, and IPSA were the principal APL vendors contributing to its evolution. IBM’s APL2—originating from Jim Brown’s efforts—was introduced as an Installed User Program in 1982 after development phases dating back to 1971. Meanwhile, STSC developed NARS, an experimental nested array system that fundamentally diverged from both dictionary APL and APL2.
IPSA incorporated new language features progressively: complex numbers, boxed arrays, match and composition operators in 1981; the determinant operator in 1982; followed by rank, link, and identity functions in 1983. Until 1986, operator domains were restricted to primitive functions; however, that year IPSA unveiled SAX (SHARP APL/Unix), a C-based implementation lifting these domain constraints. An internal alpha release of SAX appeared by late 1986 or early 1987.
Iverson also produced instructional content such as A SHARP APL Minicourse, Applied Mathematics for Programmers, and Mathematics and Programming, which were utilized for client education and academic instruction.
Significant works published by Iverson during his tenure at IPSA include:
- Educational Materials
- The Inductive Method of Introducing APL
- A SHARP APL Minicourse
- Applied Mathematics for Programmers
- Mathematics and Programming
- Language Design and 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)
Following his retirement from I. P. Sharp Associates in 1987, Iverson concentrated on language design innovations, notably inventing the "fork" operator in 1988. This operator facilitated succinct expressions like f+g, enhancing functional programming within APL. Collaborating with Eugene McDonnell, Iverson refined these ideas leading up to presentations at the APL88 conference.
Iverson’s objective was to create an accessible dialect of APL that could be distributed as shareware, was printable, cross-platform compatible, and integrated contemporary language concepts. This ambition culminated in the development of the J programming language, first announced in 1990.
Roger Hui recounted J’s origins, attributing inspiration to Arthur Whitney’s concise interpreter fragment for the AT&T 3B1 computer. Hui examined Whitney’s approach and authored J’s initial implementation code in August 1989.
The J interpreter was structured around principles from A Dictionary of APL, with C data structures reflecting its parse table design. Whitney contributed essential design elements such as primitive orientation along the leading axis and prefix agreement mechanisms that shaped J’s array processing capabilities. The introduction of forks simplified tacit programming by enabling complex expressions without explicit arguments.
Differing from traditional APL dialects, J employs natural language categories—noun, verb, adverb—and uses standard 7-bit ASCII characters instead of specialized symbols. These design choices enhanced usability and expanded its appeal across diverse user bases.
Founded as Iverson Software Inc. by Eric Iverson in February 1990 to support SHARP APL/PC products, the company soon included Ken Iverson and Roger Hui among its team members, with contributions from Chris Burke as well. The firm rebranded to Jsoftware Inc. in April 2000 to concentrate exclusively on J development.
Throughout this period, Iverson authored numerous works under both Iverson Software and Jsoftware Inc., ranging from educational texts like Tangible Math, Programming in J, and Calculus, to technical analyses such as A Commentary on APL Development, Phrasal Forms, and Tacit Definition. These publications facilitated adoption while deepening comprehension of J’s distinctive features.
J’s source code is distributed under the GNU General Public License version 3 (GPL3), with commercial licenses available through Jsoftware.
Awards and distinctions
- Designated as an IBM Fellow at IBM in 1970
- Recipient of the Harry H. Goode Memorial Award from the IEEE Computer Society in 1975
- Elected to the National Academy of Engineering (USA) in 1979
- Honored with the Turing Award by the Association for Computing Machinery in 1979
- Founding awardee of the Computer Pioneer Award from the IEEE Computer Society in 1982
- Conferred an honorary doctorate by York University in 1998
- In 2015, a moth species was named Agdistis iversoni to commemorate his legacy
See also
External links
- A Tribute to Kenneth Eugene Iverson
- Collection of Eulogies
- Iverson Exam — a programming contest organized by the University of Alberta for secondary school students
- Ken Iverson Quotations and Anecdotes — reflections on Iverson’s character, working methods, and impact
- APL Quotations and Anecdotes — portrayals of Iverson, his colleagues, and their intellectual contributions
- ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedAPVA - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedautobio - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedAPLEvol - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedDFSP - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedKEIQA
- Articles with short description
- Articles with hCards
- No local image but image on Wikidata
- 1920 births
- 2004 deaths
- Canadian Army personnel
- Canadian computer scientists
- Canadian people of Norwegian descent
- Harvard John A. Paulson School of Engineering and Applied Sciences alumni
- Harvard University faculty
- IBM employees
- IBM Fellows
- IBM Research computer scientists
- I. P. Sharp Associates employees
- McKinsey & Company people
- Members of the United States National Academy of Engineering
- People from Camrose, Alberta
- Programming language designers
- Queen's University at Kingston alumni
- Royal Canadian Air Force personnel
- Turing Award laureates
- Canadian expatriates in the United States
- Pages with reference errors