next up previous
Next: Conclusions Up: History of Lisp Previous: From LISP 1 to

Beyond LISP 1.5

As a programming language LISP had many limitations. Some of the most evident in the early 1960s were ultra-slow numerical computation, inability to represent objects by blocks of registers and garbage collect the blocks, and lack of a good system for input-output of symbolic expressions in conventional notations. All these problems and others were to be fixed in LISP 2. In the meantime, we had to settle for LISP 1.5 developed at M.I.T. which corrected only the most glaring deficiencies.

The LISP 2 project was a collaboration of Systems Development Corporation and Information International Inc., and was initially planned for the Q32 computer, which was built by IBM for military purposes and which had a 48 bit word and 18 bit addresses, i.e., it was better than the IBM 7090 for an ambitious project. Unfortunately, the Q32 at SDC was never equipped with more than 48K words of this memory. When it became clear that the Q32 had too little memory, it was decided to develop the language for the IBM 360/67 and the Digital Equipment PDP-6 - SDC was acquiring the former, while III and M.I.T. and Stanford preferred the latter. The project proved more expensive than expected, the collaboration proved more difficult than expected, and so LISP 2 was dropped. From a 1970s point of view, this was regrettable, because much more money has since been spent to develop LISPs with fewer features. However, it was not then known that the dominant machine for AI research would be the PDP-10, a successor of the PDP-6. A part of the AI community, e.g. BBN and SRI made what proved to be an architectural digression in doing AI work on the SDS 940 computer.

The existence of an interpreter and the absence of declarations makes it particularly natural to use LISP in a time-sharing environment. It is convenient to define functions, test them, and re-edit them without ever leaving the LISP interpreter. A demonstration of LISP in a prototype time-sharing environment on the IBM 704 was made in 1960 (or 1961). (See Appendix 2). L. Peter Deutsch implemented the first interactive LISP on the PDP-1 computer in 1963, but the PDP-1 had too small a memory for serious symbolic computation.

The most important implementations of LISP proved to be those for the PDP-6 computer and its successor the PDP-10 made by the Digital Equipment Corporation of Maynard, Massachusetts. In fact, the half word instructions and the stack instructions of these machines were developed with LISP's requirements in mind. The early development of LISP at M.I.T. for this line of machines and its subsequent development of INTERLISP (nee BBN LISP) and MACLISP also contributed to making these machines the machines of choice for artificial intelligence research. The IBM 704 LISP was extended to the IBM 7090 and later led to LISPs for the IBM 360 and 370.

The earliest publications on LISP were in the Quarterly Progress Reports of the M.I.T. Research Laboratory of Electronics. (McCarthy 1960) was the first journal publication. The Phyllis Fox was published by the Research Laboratory of Electronics in 1960 and the LISP 1.5 Programmer's Manual by McCarthy, Levin, et. al. in 1962 was published by M.I.T. Press. After the publication of (McCarthy and Levin 1962), many LISP implementations were made for numerous computers. However, in contrast to the situation with most widely used programming languages, no organization has ever attempted to propagate LISP, and there has never been an attempt at agreeing on a standardization, although recently A.C. Hearn has developed a "standard LISP" (Marti, Hearn, Griss and Griss 1978) that runs on a number of computers in order to support the REDUCE system for computation with algebraic expressions.


next up previous
Next: Conclusions Up: History of Lisp Previous: From LISP 1 to

John McCarthy
Fri Jul 26 22:14:58 PDT 1996