In lieu of an abstract, here is a brief excerpt of the content:

  • The LISP 2 Project
  • Paul McJones (bio)

I became interested in collecting historic software source code while working on a project involving the original IBM 704 FORTRAN compiler.1 As this project wound down, I thought of looking for the source for John McCarthy’s original LISP system. I can trace my long curiosity about LISP to a college course on artificial intelligence programming languages I took from LISP pioneer L. Peter Deutsch around 1971. My LISP collecting project traced the language and its implementations through decades of evolution. This article describes one of the early branches: LISP 2.

John McCarthy designed the LISP programming language for the symbolic computation problems that were typical of artificial intelligence at the time, and in fact LISP was strongly associated with artificial intelligence applications at least through the 1990s. By 1963, LISP 1.5 was successful enough that it was being ported from the IBM 7090 to other computers.25 However, McCarthy, who had led the development of LISP between 1958 and 1962 at the Massachusetts Institute of Technology (MIT), saw the need for a follow-on, as he later explained:6

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.57 developed at M.I.T. which corrected only the most glaring deficiencies.

The LISP 2 section of the History of LISP website (softwarepreservation.org/projects/LISP/lisp2_family) contains digitized copies of the many LISP 2 documents from Jeff Barnett’s personal collection and from collections donated to the Computer History Museum by Herbert Stoyan8 and Clark Weissman.9 Barnett’s contribution includes source code listings for which he provided annotations. One goal of this article is to serve as an introduction to people wishing to study these artifacts.

Requirements and Early Design Work (MIT and Stanford, 1963–1964)

Early design work on the LISP 2 project took place at MIT and Stanford during 1963 and 1964 and included one or more conferences to bring together the interested people. The earliest known LISP 2 document is a one-page agenda10 for the LISP 2 Specifications Conference held by the Artificial Intelligence Group at Stanford. Section 2 of this agenda was “Proposals for LISP 2.0” and included the following:

  1. a. Linear free storage

  2. b. Numbers and other full words

  3. c. Auxiliary storage

  4. d. Input language—infix notation

  5. e. Arrays

  6. f. Freer output format

  7. g. Sequence of implementation

  8. h. Comments

  9. i. Documentation and maintenance

  10. j. Hash coding

  11. k. Subroutine linkage

  12. l. Storage conventions

  13. m. Effect of various I-O apparatus

  14. n. Interaction with programs in other languages

  15. o. Expressions having property lists

  16. p. Data structures

  17. q. Fitting into monitor

Section 3 was “Objections to LISP 1.5” and included the following:

  1. 1. Cluttered

  2. 2. Slow numberical [sic] calculations

  3. 3. Data structure

  4. 4. Slow interpreter

At the First International LISP Conference, held in Mexico City over New Year’s 1963–1964, John McCarthy was scheduled to give a talk, “The LISP 2 Compiler,” but Robert Yates, who helped organize the conference, says McCarthy did not give such a talk.11 In any case, memos on various LISP 2 design topics began appearing in the report series from the Stanford and MIT artificial intelligence [End Page 85] projects on storage conventions,12,13 syntax,14 and string manipulation.15

Development: System Development Corporation and Information International, Inc., 1964–1967

Building a Team

As the scope of the system evolved, it became obvious that it was too large to carry out within the Stanford or MIT artificial intelligence projects. Instead, a joint project involving Information International, Inc. (III) and System Development Corporation (SDC) was proposed and adopted, with III supplying people with LISP experience and SDC providing a time-shared computer and additional personnel. III, located in Cambridge, Massachusetts, was founded in 1962 by Edward Fredkin and by 1964...

pdf

Share