Information Processing Language

Information Processing Language (IPL) is a programming language developed by Allen Newell, Cliff Shaw, and Herbert Simon at RAND Corporation and the Carnegie Institute of Technology from about 1956. It includes features intended to support programs that could perform general problem solving, including lists, associations, schemas (frames), dynamic memory allocation, data types, recursion, associative retrieval, functions as arguments, generators (streams), and cooperative multitasking. Newell had the role of language specifier-application programmer, Shaw was the system programmer and Simon took the role of application programmer-user.

IPL was used to implement several early artificial intelligence programs, also by the same authors: the Logic Theory Machine (1956), the General Problem Solver (1957), and their computer chess program NSS (1958).

IPL pioneered the concept of list processing.

The first application of IPL was to demonstrate that the theorems in Principia Mathematica which were laboriously proven 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 first application was 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.

To this day in the CRC method, object-oriented programmers still use note cards to encapsulate simple attributes of the roles played by the programmed objects.

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, many others. Widely used), IPL-VI.

However the language was soon displaced by Lisp, which had similar features but a simpler syntax and the benefit of automatic garbage collection.

Publications

 * Newell, A. and F.C. Shaw. "Programming the Logic Theory Machine." Feb. 1957. Proceedings of the Western Joint Computer Conference, pp. 230-240.
 * Newell, Allen, and Fred M. Tonge. 1960. "An Introduction to Information Processing Language V." CACM 3(4): 205-211.
 * Newell, Allen. 1964. Information processing language-v manual; Second Edition. Rand Corporation [Allen Newell], Englewood Cliffs, NJ: Prentice-Hall.