Information Processing Language

The code includes features intended to help with programs that perform simple problem solving actions such as lists, dynamic memory allocation, data types, recursion, functions as arguments, generators, and cooperative multitasking.

However, H1 is interpreted as a list; the LINK of H1 is, in modern terms, a pointer to the beginning of the call stack.

Procedures are "morally bound" (to quote the CACM article) to save and restore the values of these cells.

In all cases but conditional branch, the LINK field of the cell tells which instruction to execute next.

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.

[1][2][3] A co-processor “IPL-VC” for the CDC 3600 at Argonne National Libraries was developed which could run IPL-V commands.

[6] This hardware implementation did not improve running times sufficiently to “compete favorably with a language more directly oriented to the structure of present-day machines”.

[7] IPL was soon displaced by Lisp, which had much more powerful features, a simpler syntax, and the benefit of automatic garbage collection.