Beginning in 1950, almost exactly at the same time that Turing’s Mind paper appeared, there was an explosion in von Neumann/Turing style computer hardware. At that time, all of the existing computers, such as Colossus and EDVAC, were one-off machines. Although UNIVAC, the company spun off from Penn’s ENIAC project by Eckert and Mauchley, had promised a massproduced machine, none had yet been delivered when RAND decided to build the JOHNNIAC.[30] This was the machine on which Shaw, Newell, and Simon pioneered the IPL series of programming languages, which they used to implement what were are almost certainly the first real AIs:
“IPL was first utilized to demonstrate that the theorems in Principia Mathematica which were proven laboriously by hand, by Bertrand Russell and Alfred North Whitehead, could in fact be proven by computation. According to Simon’s autobiography Models of My Life, this application was originally developed first by hand simulation, using his children as the computing elements, while writing on and holding up note cards as the registers which contained the state variables of the program. IPL was used to implement several early artificial intelligence programs, also by the same authors: the Logic Theorist (1956), the General Problem Solver (1957), and their computer chess program NSS (1958). Several versions of IPL were created: IPL-I (never implemented), IPL-II (1957 for JOHNNIAC), IPL-III (existed briefly), IPL-IV, IPL-V (1958, for IBM 650, IBM 704, IBM 7090, Philco model 212, many others.”[5]
IPL introduced what became the most important concepts in classical Artificial Intelligence (and, in fact, in computing more generally), including list processing, symbolic computing (as foreshadowed by Ada Lovelace!), and recursion.[5]
Notably, although Turing’s bombe, the code-breaking machine, was not a “modern” computer, in the sense that is was hardwired, as opposed to being of the von Neumann/Turing stored program type, the program that it ran was explicitly engaged in mechanical heuristic search, that is, in trying a huge number of operators (e.g., combinations of code keys) in a cleverly arranged order (e.g., beginning with the most probable), in hopes of reaching a goal (e.g., the key that would break the day’s code). Much later, Newell and Simon described heuristic search as a fundamental process of intelligence,[35], and remains one of the most important tools of AI.[2]
However, IPL was an ugly programming language – not very far from assembly language – and, as an interpreted language it was slower than assembly or the soon-to-follow “high level” compiled languages such as COBOL and Fortran. These promised programmers both high performance and simplicity of expression. This brings us to SLIP and Lisp, which took different paths to bring simplicity and additional power to the important AI concepts pioneered in IPL.
Author:
(1) Jeff Shrager, Blue Dot Change and Stanford University Symbolic Systems Program (Adjunct)( [email protected]).
This paper is
[2] Allen Newell once told me, in passing, that AI’s only had one tool, the ability to search huge multi-dimensional spaces efficiently, but that one tool is all you need.