History
Kenneth E. Iverson (1920–2004)
Iverson Notation
The q language descends from the mathematical notation devised at Harvard by Ken Iverson for his work on input-output matrices with economist Vassily Leontieff – for which Leontieff received the Nobel Prize.
Fred Brooks and Ken Iverson used the notation to teach the world’s first programming course, for which they wrote the textbooks Automatic Data Processing and A Programming Language.
APL
Iverson went from Harvard to IBM, where his notation was implemented as a programming language and dubbed APL, after the title of his book.1 Before PCs and spreadsheets, IBM managers throughout the world used APL for personal computing.
APL has inspired major developments in computer science, such as functional programming, and NumPy. In 1979 Iverson received the Turing Award. His Turing lecture “Notation as a Tool of Thought” is a classic.
A+ and J
Iverson was mentor to his friend’s son, Arthur Whitney. They both worked for some years at I.P. Sharp Associates (IPSA) in Toronto.
For IPSA Australia, Whitney rewrote the 500Kb APL interpreter as an 80Kb binary for a minicomputer: SHARP APL/HP.
Later, in New York, he designed and implemented an ASCII-only subset of APL, dubbed A (later, A+) that for twenty years served as the platform for Morgan Stanley’s trading applications.
Ken Iverson & Arthur Whitney at APL91
In 1990 Iverson stopped working on APL and founded Jsoftware to distribute his ASCII-only J programming language. Whitney wrote the first draft of the J interpreter.
kdb+ and q
Later iterations of A+ became the k programming language. Whitney and Janet Lustgarten founded Kx Systems to distribute it as kdb+.
Q was written as an embedded domain-specific language – a wrapper – to make k more accessible, with SQL-like queries and English-like keywords replacing some of k’s dense rank overloads.
After Kx Systems, Whitney and Lustgarten founded Shakti to release a further iteration of k.
Articles
- AKQJ大师
- Kx Systems: A Historical Need for Speed, Datanami, October 2020
- APL Since 1978, Proc. ACM Program. Lang., Vol. 4, No. HOPL, Article 69. June 2020
- Stages of Denial, John Earnest, March 2020
- Vector processing languages: the future of Big Data analytics and real-time business intelligence, Conceptual Origami, 2010
- A conversation with Arthur Whitney, ACM, 2009
- An interview with Arthur Whitney, KX, 2004
Archive
- Abridged q language manual, Arthur Whitney, 2009
- Abridged kdb+ database manual, Arthur Whitney, 2006
- Kdb+ database reference manual, Don Orth, 2006
- Q language reference manual, Don Orth, 2006
- Abridged kdb+tick manual, Arthur Whitney, 2005
- Abridged kdb+taq manual, Arthur Whitney, 2005
- Kdb+ database and language primer, Dennis Sasha, 2005
-
A proposal to call the notation Iverson’s Better Math was rejected as facetious. ↩