Here’s a language I hadn’t come across before. It seems to have good list-processing facilities and there were ideas of writing programs which could learn.
Sammet wrote: “A list processing system whose commands are similar in spirit to those of an assembly language, but for manipulating lists”
But it’s terribly low level - almost like a byte code or an assembly language. From the manual (300 page pdf), here’s “a complete program” - comments on the left, instructions on the right:
Newell, one of the inventors (Newell, Simon, and Shaw), wrote in 1963
IPL-V (Information Processing Language-V) is a programming language for list processing and symbol manipulation. It is the fifth of a series of programming languages that has developed as part of a research effort in artificial intelligence and simulation of cognitive processes. This research started in late 1954 at The RAND Corporation and Carnegie Institute of Technology
At that time, the language had been implemented on six machine types - it was a portable language.
The following systems exist currently (the persons named are currently responsible for maintenance) :
IBM 709/7090 Gloria Goldberg, Computer Sciences Dept., The RAND Corp., 1700 Main St., Santa Monica, Calif.
CDC 1604 Robert K. Lindsay and John H. Dauwalder, Computation Center, University of Texas, Austin, Texas.
Bendix G-20 Alan J. Perils, Computation Center, Carnegie Institute of Technology, Pittsburgh 13, Penn.
Philco 2000 Stuart Shaffer, System Development Corp., 2500 Colorado Ave., Santa Monica, Calif.
IBM 650 Lewis G. Creary, Computer Center, Wayne State University, Detroit 2, Mich.
Univac 1105 J.W. Hanson, Computer Center, University of North Carolina, Chapel Hill, N. C.
Portable doesn’t mean source-available, of course:
The published manual is a fairly adequate description of the system in the sense that versions of IPL have been coded exclusively from the manual as a specification. As far as I know, none of the machine systems has been flow-charted or documented in detail. This is undoubtedly deplorable, but it seems we must be content to live in a deplorable world.
Of special interest (to me!), there was a proposal to construct a hardware machine to execute IPL-V directly, for a tenfold performance improvement. See the 19 page report by Donald Hodges:
IPL-VC A COMPUTER SYSTEM HAVING THE IPL-V INSTRUCTION SET
The CDC-3600 has the following convenient features for converting it into an IPL-V hardware system (henceforth called IPL-VC):
- A fast (1½ microsecond cycle time), 64,000-word, random access memory .
- Ease of attachment of equipment directly to the memory.
- Working input-output equipment of all types.
- A high-speed conventional arithmetic unit, with the provision of one list-processing instruction already built in, which is all that is needed in the arithmetic unit itself.
- An IPL-V simulator program written for the CDC 1604, which is being converted to be suitable for the CDC-3600.
Hodges notes
The convenience of having a simulator, even on a hardware IPL-V machine, is obvious to an IPL-V programmer. The simulator programs contain excellent tracing, dumping, and snapshot procedures.
Also
In arithmetic computers for the applications described here, it has been found convenient to define new programming languages which are classed as Symbol Manipulation Languages. To achieve a working machine obeying such languages, simulation programs of such machines have been written on conventional arithmetic computers. Five major languages have been developed, and these are reviewed in Refs. 4 and 5. They are COMIT, a system for helping in automatic translation (Ref. 6) and four general information-processing languages: LISP 1.5 (Refs. 7, 8, 9), FLP L (Ref. 10), IPL-V (Refs. 2, 11), and SLIP (Ref. 12). Although descriptions of the first two information languages exist, there is little published work involving their use . However, with IPL-V, not only the original designers of the language, but others have used the language as a working tool. The uses of the language are reviewed by A. Newell in Ref. 13.
Reference 13 is found online as a 41 page PDF:
Learning, Generality and Problem Solving, IFIP 62, North American Holland (1963).
There’s a short paper on a checkers (draughts) program here, and one on chess playing program here.
Edit: I see that Jack Copeland has the original IPL (not IPL-V) as a predecessor to LISP:
In 1960 John McCarthy combined elements of IPL with elements of the lambda calculus–a powerful logical apparatus dating from 1936–to produce the language that he called LISP (from LISt Processor). In the U.S., LISP remains the principal language for AI work.
(hat-tip to Chris/Baz for the initial pointer)