Other LISP 1.5 implementations
- LISP 1.5 for Univac M-460 (Air Force Cambridge Research Laboratories)
- LISP 1.5 for AN/FSQ-32/V (System Development Corporation)
- LISP 1.5 for IBM M44 (Air Force Cambridge Research Laboratories)
- LISP 1.5 for IBM 360 at SDC
- LISP 1.5 for Raytheon 704 at SDC
- MBLISP (Martin Baltimore)
- LISP 1.5 for CDC 6000 series (University of Texas)
- Stanford Lisp/360
- RPI LISP 1.5 for IBM System/360 (Rensselaer Polytechnic Institute)
- LISP 1.5 for Univac 1108 (University of Wisconsin - Madison)
- ALISP for CDC 6000 (Cyber 72) series (University of Massachussets Amherst)
LISP 1.5 for Univac M-460 (Air Force Cambridge Research Laboratories)
The Univac M-460 was a military version of Univac 490. The LISP system was written by Timothy P. Hart and Thomas G. Evans at Air Force Cambridge Research Laboratories. The system was bootstrapped from Lisp 1.5 on the IBM 7090 using a cross-compiler and a small amount of machine language code for the lowest levels of the Lisp implementation. See:
- Timothy P. Hart and Thomas G. Evans. Notes on Implementing LISP for the
M-460 Computer. March 1964, pages 191-203 in Berkeley and Bobrow.
"This article describes the process used to implement LISP 1.5 on the Univac M 460 (an early military version of the Univac 490). This machine, which has been available to us on an open-shop basis, has 32000 registers of 30-bit, 8 microsecond memory. It has an instruction set which is quite convenient for LISP, e.g., it is possible to load an index register (of which, incidentally, there are seven) from either the left or right half of the word addressed by the same index."
Includes LISP source code of interpreter.
LISP 1.5 for AN/FSQ-32/V (System Development Corporation)
The AN/FSQ-32/V was a military computer with 48-bit words; only one was built and it belonged to System Development Corporation, in Santa Monica, California. The LISP system was written by Robert Saunders, with assistance from Tim Hart, Dan Edwards, Mike Levin, John McCarthy, and Steve Russell.
"The Q-32 implementation was the first LISP that did not run on an interpreter: all code was compiled before execution. Someone subsequently wrote an interpreter for it, but I have no idea why other than for the fun and instruction of doing it. [As stated in Berkeley and Bobrow], the LISP was developed on Stanford's 709/90 system, compiled there, and taken to Santa Monica as machine instructions on magnetic tape. Some fundamental code (e.g. CONS, and later the garbage collector) was done in machine language on the Q-32 itself."
[Robert A. Saunders, personal communication to Paul McJones, May 6, 2005.]
- Robert A. Saunders. The LISP System for the Q-32
Computer. March 1964, pages 220-238 in Berkeley and Bobrow.
This paper says "Assistance was also given by D. Edwards and M. Levin of the Massachusetts Institute of Technology, and Prof. J. McCarthy and S. Russell of Stanford University. Computer time on the Stanford 7090 and PDP-1 was used in conjunction with Stanford's contract with Advanced Research Projects Agency for research in time sharing and artificial intelligence." However Saunders now says "The Stanford PDP-1 played no role whatever in the Lisp port. I am at a loss to explain any claim to the contrary. All the work was done on the 709/90/94 system, using punched cards." Russell concurs. [Personal communication to Paul McJones, 5/16/2005]
- Robert A. Saunders. The LISP Listing for the Q-32 Compiler, and Some Samples. March 1964, pages 290-318 in Berkeley and Bobrow. PDF
- Robert A. Saunders. A LISP Interpreter for the Q-32. March 1964, pages 383-385 in Berkeley and Bobrow. PDF
- S. L. Kameny, G.P. DeFlorio, and A.H. Vorhaus. General-Purpose Display System, SP-1688, System Development Corporation, September 23, 1964.
- United States National Bureau of Standards Collection of Computer Literature, NBS# 6421245. (Box 291, folder 3). Finding aid at umn.edu
- Clark Wiessman. LISP Primer: A Self-Tutor for Q-32 LISP 1.5. TM-2337/010/00, System Development Corporation, Santa Monica, California, June 14, 1965, 166+1 corrections page. Gift of Clark Weissman. PDF
- Modification to TM-2337/010/00, "LISP Primer, A Self-Tutor for Q-32 LISP 1.5," dated 14 June 1965. TM-2337/010/00A, System Development Corporation, June 23, 1966. Gift of Clark Weissman. PDF
- S. L. Kameny. LISP 1.5 Reference Manual for Q-32, TM-2337/101/00, System Development Corporation, August 9, 1965. Gift of Clark Weissman. PDF
- S. L. Kameny. The Q-32 LISP 1.5
Mod. 2.5 System : Input-Output File and Library Functions. TM-2337/102/00, System Development Corporation, September 22, 1965. Gift of Clark Weissman. PDF
"This document supplements TM-2337/101/00 by describing the input-output, file-handling and library functions of Q-32 LISP 1.5 Mod. 2.5."
- S. L. Kameny and C. Weissman. Q-32 LISP 1.5 Mod. 2.6 System : Operating
System, Input-Output, File, and Library Functions. TM-2337/103/00, System Development Corporation, April 11, 1966. PDF
"This document supplements TM-2337/10l/00 by describing the input-output, file-handling, and library functions ot Q-32 LISP 1.5 Mod. 2.6. It also describes differences between Mod. 2.6 and the previous Mod. 2.5 described in TM-2337/102/00 dated 9 August 1965."
- John F. Burger. UMPIRE: An Automatic Kriegsspiel Referee for a Time-shared Computer. SP-2752, System Development Corporation, Santa Monica, California, February 17, 1967, 17 pages. Gift of Clark Weissman. PDF
- E. P. Myer. Command Research Laboratory Bulletion No. 39. TM-1699/038/00, System Development Corporation, April 20, 1967. Gift of Clark Weissman. PDF
Gives Q-32 holiday schedule through the end of 1967, and announces a change to LISP and LISPED: "Both the LISP and LISPED programs have been modified as of April, 1967, to utilize pseudo-addresses to represent 'small' integers and 'small' positive octals."
When was the Q-32 decommissioned?
"This document is a reference manual for the Q-32 LISP system in operation under the Time-Sharing System (TSS) on the AN/FSQ-32 computer. It describes the working of the LISP system, and contains descriptions of all currently available and installed functions, except for input-output and library functions given in TM-2337/l02/00."
"The IBM M44/44X was an experimental computer system from the mid-1960s, designed and operated at IBM's Thomas J. Watson Research Center at Yorktown Heights, New York. It was based on an IBM 7044 (the 'M44'), and simulated multiple 7044 virtual machines (the '44X'), using both hardware and software. Key team members were Dave Sayre and Rob Nelson. This was a groundbreaking machine, used to explore paging, the virtual machine concept, and computer performance measurement. It was purely a research system, and was cited in 1981 by Peter Denning as an outstanding example of experimental computer science." [Wikipedia, IBM M44/44X]
- Paul W. Abrahams. A LISP 1.5 System for the M44 Computer. Final Report, Contract No. AF 19(628)-5207, Project No. 8673, ARPA. AFCRL-67-0047, Air Force Cambridge Research Laboratories, 6 January 1967.
PDF at dtic.mil
"A LISP 1. 5 system has been constructed for the M44 digital computer operated on a time-shared basis by IBM at the Thomas J. Watson Research Center at Yorktown Heights, New York. Because the technical details of M44 LISP are fully described in the User's Manual and System Manual, this report merely briefly summarizes the salient characteristics of the system. The details will be found in these two manuals. Complete listings of the system are in the possession of cognizant technical personnel at the Air Force Cambridge Research Laboratory.
M44 LISP was produced by a bootstrapping technique using the Q32 computer at the System Development Corporation at Santa Monica, California. The system itself contains a bootstrapping facility. M44 LISP has attempted to combine the best features of the LISP 1.5 systems operating on the IBM 7094, the Univac M-460, and the Q32, but it most closely resembles the Q32 system. The facilities for operating upon list structures and upon numerical quantities are quite similar among existing systems, and have been copied in M44 LISP. The basic library of LISP functions as specified in the LISP 1.5 Manual is available within M44 LISP, though certain functions peculiar to the 7094 system have been omitted."
- J. A. Barnett and R. E. Long. The SDC LISP 1.5 System for IBM 360 Computers. SP-3043 System Development Corporation, Santa Monica, California, January 11, 1968, 18 pages. Gift of Clark Weissman. PDF
- Jeff Barnett. Notes on SDC LISP 1.5 System for IBM 360 Computers. June 2010. HTML
- R. E. Long. A Table of LISP 1.5/360 Functions and Variables. TM-4310/000/00, System Development Corporation, Santa Monica, California, May 27, 1969, 16 pages. Gift of Clark Weissman. PDF
- John Burger. LISP EDIT Program, LISPED Users Guide. TM-4310/100/00, System Development Corporation, Santa Monica, California, December 1, 1969, 19 pages. Gift of Clark Weissman. PDF
- Draft update March 1, 1972. PDF
- John Burger. LISP 1.5 for the 360 Computers: Table of Entry Space. TM-4310/300/00, System Development Corporation, Santa Monica, California, January 7, 1972, 15 pages. Gift of Clark Weissman. PDF
- John Burger. LISP 1.5 for the 360 Computer: Data Space Descriptions. TM-4310/400/00, System Development Corporation, Santa Monica, California, November 17, 1972, 11 pages. Gift of Clark Weissman. PDF
- J. Barnett. LISP 1.5 for 360 Computer: Language Maintenance Manual. TM-4520/000/00, System Development Corporation, Santa Monica, California, March 2, 1970, 51 pages. Gift of Clark Weissman. PDF
- Jeff Barnett. Memo to Mort Bernstein re infix-to-LISP translator. October 23, 1970. Gift of Clark Weissman. PDF
- J. Burger. Memo to M. Bernstein re New I/O for LISP. February 4, 1972, 2 pages. Gift of Clark Weissman. PDF
- Jeff Barnett. Notes on SDC Lisp for Raytheon 704 Computers. July 2010. HTML
MBLISP was a Lisp 1.5 dialect developed by Harold V. McIntosh and his students at RIAS (Martin Baltimore) and the Quantum Theory Project (University of Florida). For more information, see:
- Paul McJones. The First International LISP Conference (1963). Dusty Decks blog, April 23, 2012. online at mcjones.org
- Paul McJones. Harold V. McIntosh and his students: Lisp escapes MIT. Dusty Decks blog, July 6, 2012. online at mcjones.org
- William Skeen, Judy Barnes, John D. Baildon, and Robert Thompson. Handbook of LISP Functions. RIAS Technical Report 61-11, RIAS Martin Baltimore, August 1961. PDF
- Arnold K. Griffith. An Introduction to LISP. Preprint No. 31, Quantum Theory Project, University of Florida, November 15, 1962. PDF
"This volume is intended to be an introduction to LISP programming. In addition, the last section constitutes a revision of the HANDBOOK OF LISP FUNCTIONS (RIAS technical report 61-11)."
- [Harold V. McIntosh.] Integer Arithmetic Functions in MBLISP. Program Note #6, Quantum Theory Project, University of Florida, July 15, 1963. PDF
- Harold V. McIntosh. Operators for MBLISP. Program Note #9, Quantum Theory Project, University of Florida, July 26, 1963. PDF
- [Harold V. McIntosh.] An IBM 709/7090 operator's manual for MBLISP. Program Note #11, Quantum Theory Project, University of Florida, August 3, 1963. PDF
- Harold V. McIntosh. List Techniques. Program Note #13, Quantum Theory Project, University of Florida, August 20, 1963. PDF
- Harold V. McIntosh. Output functions for MBLISP. Program Note #17, Quantum Theory Project, University of Florida, September 5, 1963. PDF
- Adolfo Guzmán Arenas. Preparación de programas para la computadora Q-32 mediante el sistema TELEX. Nota de Programación No. 4, Centro Nacional de Calculo, Instituto Politécnico Nacional, Unidad Profesional de Zacatenco, Mexico 14. D.F., Mexico, June 20, 1965.
- Alberto Verjovsky. Two LISP pattern recognition functions: SIMILAR and SIMILAR*. Program Note #2, Quantum Theory Project, University of Florida, February 28, 1963. PDF
- José Barbaran. Lisp Programs to Calculat Derivatives and Poisson brackets. Program Note #3, Quantum Theory Project, University of Florida, February 28, 1963. PDF
- Robert Yates. Group Analysis Programs. Program Note #5, Quantum Theory Project, University of Florida, July 1, 1963. PDF
- Victor A. Dulock. The Dirac Groups. Program Note #8, Quantum Theory Project, University of Florida, July 25, 1963. PDF
- Billy S. Thomas. A LISP function for computing induced representations. Program Note #10, Quantum Theory Project, University of Florida, July 25, 1963. PDF
- John Williams. LISP pattern recognition functions. Program Note #1, Centro Nacional de Calculo, Instituto Politécnico Nacional, Unidad Profesional de Zacatenco, Mexico 14. D.F., Mexico, August 20, 1964.
- Daniel Conrad. LISP functions for generating and plotting figures. Program Note #2, Centro Nacional de Calculo, Instituto Politécnico Nacional, Unidad Profesional de Zacatenco, Mexico 14. D.F., Mexico, August 27, 1964.
LISP 1.5 for CDC 6000 series (University of Texas, Austin)
"In September of 1966, a project sponsored by Professor W. W. Bledsoe was begun to develop a LISP 1.5 interpreter system for the Control Data 6000 computer series. The completion of the system is announced with the publishing of this document." [Morris and Singleton, 1967]
- Bill Bennett, William Cohagan, Alfred Correira, E. M. Greenwalt, James B. Morris, Annadene Silver, Jonathan Slocum, Mabry Tyson. UT Lisp Interpreter Program Listing. Version 5, 1980. Accession number 102719682 at Computer History Museum.
- James B. Morris, Jr. and Don J. Singleton. The University of Texas 6400/6600 LISP 1.5: An Adaptation of MIT LISP 1.5. Computation Center, The University of Texas, Austin.
- E. M. Greenwalt, Robert A. Amsler, Jonathon Slocum, and Mabry Tyson. LISP Reference Manual : CDC - 6000. CCUM 2, Computation Center, University of Texas at Austin, December 1975. PDF
Source codeTape 2 of the third distribution of the Michigan Terminal System (MTS) contains source and executable code for a version of Stanford LISP/360 that has been modified to run under MTS. The relevant files are numbers 41 through of d3.0t2.aws, which can be extracted using the lbltp utility (for Microsoft Windows or Macintosh) included with the archived distribution.
- Material from the Michigan Terminal System Dist-v4-26 June 2011 DVD submitted by Mike Alexander and available at the Bentley Historical Library (Ann Arbor). Online at deepblue.lib.umich.edu
- Distribution 3ZIP archive at deepblue.lib.umich.edu
- LISP360 files extracted from Distribution 3. ZIP archive
- Interpreter source code, as modified for MTS. Online
- Compiler source code. Online
"These routines were developed by R I Berns A C Hearn and J G Kent from code originally written for LISP on the 7090 and modified for the IBM System 360 by F Blair and J Griesmer."
- Debug package source code. Online
- J. G. Kent. An Interpretative System for the Programming of Recursive Functions on a Digital Computer, Intern rapport E-88, Norwegian Defence Research Establishment, Kjeller, Norway, 1966.
- Part II: Lisp Implementation. From Herbert Stoyan Collection on LISP Programming, Lot Number X5687.2010. PDF
- Jan Kent. LISP 3600 Users Manual. Teknisk notat E-98, Norwegian Defence Research Establishment, Kjeller, Norway, March 3, 1966. From Herbert Stoyan Collection on LISP Programming, accession number 102719598. PDF
- J. G. Kent. LISP 1.5 Implementation on the CD 3600, and the IBM System /360 Series. To be published in: E. C. Berkeley, editor. The Nature, Uses and Implementation of the Computer Language LISP. Information International Inc., Cambridge, MA., expected October 1967.
- Copy one. Handwritten "J. McCarthy", crossed out, on cover. Inked-in corrections on pages 6 and 8. PDF
- Copy two. Later, corrected version. PDF
"The implementing of LISP 1.5 on CD 3600 was performed at: the Kjeller Computer Installation, Kjeller, Norway, as the main part of the author's thesis work for his M.A. degree. As several installations have asked me to make a LISP 1.5 interpreter for the IBM System 360, I have started to do this at the University of Waterloo, Waterloo, Ontario, Canada."
- R. I. Berns. A Paged LISP Using the Dynamic Relocation Hardware of an IBM 360/67. Computation Center, Stanford University, Stanford, 1967. [From Stoyan]
- Anonymous [Kent and Burns?]. Stanford LISP/360 Implementation Guide. 1968?, ii+9 pages. Computer History Museum gift of Clark Weissman. This was probably published around the same time as the February 1968 revision of the reference manual. PDF
- J. Kent and R. Berns. LISP/360 Reference Manual.
- Appendix C, Campus Facility Users Manual, Stanford Computation Center. Revised February 1968, iv+40 pages. Computer History Museum gift of Clark Weissman.
The preface (by Rod Frederickson) ends with: "Since the last edition of this manual, Messrs. Kent and Berns have completed the LISP 1.5 Assembler and Compiler. Information on these processors is included in this paper."
- Document Number SCC024, Campus Computer Facility, Stanford Computation Center, Stanford University, Fourth Edition, March 1972. PDF
"This manual is intended to provide the LISP 1.5 user with a reference manual for the LISP 1.5 interpreter, assembler, and compiler on the Campus Facility 360/67. ...
The particular implementation to which this reference manual is directed was started by Mr. J. Kent while he was at the University of Waterloo. It is modeled after his implemention of LISP 1.5 for the CDC 3600.
Included in this edition is information on the use of the time-shared LISP system available on the 360/67 which was implemented by Mr. Robert Berns of the Campus Computer Facility staff."
- J. F. Bolce and R. H. Cooper. LISP/360. Computing Centre, University of Waterloo, March 1968. PDF
"ACKNOWLEDGMENTS: I wish to thank Mr. Jan Kent for his experience and guidance in the initial design and implementation of the interpreter. ..."
"INTRODUCTION: Lisp /360 is an interpretative Lisp 1.5 system written at the University of Waterloo. It has been modelled after the Lisp 1.5 program on the IBM 7090 (1) although many ideas have been borrowed from the CDC 3600 Lisp interpreter (2). ..."
1. John McCarthy et al., Lisp 1.5 Programmer's Manual, Cambridge, Massachusetts, MIT Press, 1962.
2. Jan Kent, An Interpretive System for the Programming of Recursive Functions on a Digital Computer, Thesis in Mathematics, University of Oslo (1966).
- Horace Enea. MLISP. Technical Report No. CS 92, Computer Science
Department, School of Humanities and Sciences, Stanford University, March
14, 1968, 18 pages pages. Online at
Describes the version of the MLISP preprocessor for a LISP 1.5 system running on an IBM System/360 Model 67; see also [Smith 1969] for a version running on Stanford LISP 1.6 for the PDP-6/10.
- R. I. Berns. A Paged LISP Using the Dynamic Relocation Hardware of an IBM 360/67. PDF
Cited by the LISP/360 Reference Manual (1972 edition) as "soon to be published".
- K. R. Kay. Appendix - Utah Modifications Stanford Lisp/360 Reference Manual. 4th Edition, Computational Physics Group, University of Utah, January 1975. PDF
- Richard G. Larson and Neil W. Rickert. LISP on CMS at UIC. Version of 06/30/77. Mathematics Department, University of Illinois at Chicago. Online at uic.edu
"This manual is a reference for the modified version of Stanford LISP/360 used at the UIC Computer Center."
- Anonymous. LISP. Long Write-up R200, Program Library, CERN Computer Centre, January 1978. PDF
"The version of LISP currently offered at CERN is the Stanford LISP/360 with the Utah modifications of 1975. It is offered only on the IBM system. The present long write-up is the complete documentation, and consists of:
1. The Standford [sic] LISP/360 manual (pages i-vi and 1-58) and
2. The Utah appendix (pages Al-A16) which can be considered as an update to the Stanford manual."
This copy is missing pages 32 and 57 of the Stanford LISP/360 section, which follows the Utah appendix.
- Anthony Hearn. REDUCE 2. Tape 4 of the third distribution of the Michigan Terminal System (MTS) contains source and executable code for a version of Stanford LISP/360 that has been modified to run under MTS. The relevant files are numbers 291 through 298 of d3.0t4.aws, which can be extracted using the lbltp utility (for Microsoft Windows or Macintosh) included with the archived distribution.
- Material from the Michigan Terminal System Dist-v4-26 June 2011 DVD submitted by Mike Alexander and available at the Bentley Historical Library (Ann Arbor). Online at deepblue.lib.umich.edu
- Distribution 3ZIP archive at deepblue.lib.umich.edu
- REDUCE 2 files extracted from Distribution 3. ZIP archive
- REDUCE 2 source code, original for OS/360. Online
- REDUCE 2 source code, modified for MTS. Online
- Examples, with output. Online
- John C. Reynolds. GEDANKEN translator. Technical report and LISP/360 source code, 1969. Online at softwarepreservation.org
"The R.P.I. LISP interpreter for the System/360/50 was written in 1965 by William Lehrman for the degree of Master of Electrical Engineering. The garbage collector, arithmetic features, and print program were written by Jonathan Millen. The compiler was written by Jack Gelb and Jonathan Millen, the authors of several lesser functions and this manual. Mel Sabel wrote the self-relocation routine and the I/O modules to allow LISP to operate through teletypes. The authors gratefully acknowledge the encouragement and advice of Professors Dean Arden and Jack Hollingsworth of R.P.I."
- Jonathan K. Millen and Jack P. Gelb. LISP 1.5 and its Implementation on the IBM System/360 at RPI. Pub #PAD-10, RPI Computer Laboratory, Rensselaer Polytechnic Institute, second edition January 1970. PDF
LISP 1.5 for Univac 1108 (University of Wisconsin - Madison)
"In the late 1960's, Eric Norman of the University of Wisconsin - Madison developed a LISP 1.5 dialect for the Univac 1100 series of mainframes ... .
The LISP system developed by Norman consisted of approximately 5,000 lines of Univac assembly language for the interpreter and about 1,000 lines or so of LISP for the compiler. Several interesting applications were developed under or ported to Univac LISP including: Planner (an early planning language designed by Carl Hewitt of MIT; MLISP (an Algol 60-like dialect of LISP); Fuzzy (a system that worked with Fuzzy Logic); and several LISP utilities such as a Pretty Print package, a Math Library, a source Editor, and a Debugger. The original source code for all of the above items -- including the full interpreter and compiler -- are contained herein and are discussed in some detail." [Jack Harper, http://www.frobenius.com/univac.htm]
"At the time, the Computing Center here at Wisconsin had decided to purchase a Univac 1108. It couldn't be delivered yet, though. What we had was a remote card reader and printer to an 1108 up in Minneapolis. Just about all the interpreter was developed that way. That is, I submitted a deck of cards at night and picked up the listings the next day. When the 1108 arrived on campus, LISP was already running on it." [Eric Norman, personal communication to Paul McJones, May 2005]
Source code and documentation
- Eric Norman. LISP - UNIVAC 1108 Reference Manual. Madison Academic Computer Center, Madison, Wisconsin, USA, circa 1969. From the Herbert Stoyan Collection on LISP Programming, Computer History Museum, Lot Number X5687.2010. PDF
"I first thought that it was a newer version of what I received from Eric in 1972, but quickly realized that it is, in fact, older than that. I first thought it newer because it contains more information and is better written.
However, it contains nothing on strings (which were later added to the system), DefSpec (to allow uses to implement their own special forms - later added), and many others (e.g., date/time functions, things like MANIFEST etc etc etc). In addition, the Lisp example code in the document says that it is running on Lisp v6.2, whereas the document that I have had since 1972 speaks of v7.72.
This older document is very nice and I have no idea why Norman abandoned it sometime before 1972 (when I received the tape from him). Possibly, he thought it too long or too complicated or something - and cut it up into two separate documents - the "Primer" and the "Reference" that I received then. This document is, in my view, much better." [Jack Harper, personal communication to Paul McJones, August 7, 2012]
- Eric Norman. The Implementation of LISP on the UNIVAC 1108. Madison Academic Computer Center, Madison, Wisconsin, USA, ca. 1969, 17 pages. From the Herbert Stoyan Collection on LISP Programming, Computer History Museum, Lot Number X5687.2010. PDF
"It is an early document because it does not talk about string objects at all (added to the system later). ... Eric clearly designed the system to maximize the efficient use of memory. For example, not only did he pack two Lisp pointers into a single 36-bit word of core, but he limited pointers to 17-bits so that he marked cons cells during garbage collection simply by complementing the contents in a single machine instruction, meaning that he did not need a separate MARK field (other than that single bit) in a cons cell. ...
In addition, he used BIBOP memory management where he divided the Lisp space into hordes of (128-word) pages that each held only a single type of data. Therefore, he could take a pointer and with a couple of logic instructions could tell the type of object pointed to - without a TYPE field in the cells. Again, he was doing everything he could to maximize memory use traded off with a bit more processing. ...
Back "in the day", very few 1108s had the full 262,144 word memory size - memory was the most expensive part of a computer then. For example, Lisp/1100 started up with a default heap size of only 12,800 36-bit words (or 200 128-word BIBOP pages - the program size was about 14,000 words and the stack(s) was 3,072 - thus, to run Lisp/1100 required just over 30,000 words of core - you could, if needed, grow core at runtime on-the-fly). Thus, the reason for Eric's extreme emphasis on efficient memory management.
I also found it interesting, from the document, that he put the hooks in for a parallel garbage collector (which answers some questions for me about some oddities in the code), but he never implemented that - probably because, to my knowledge, he never had access to a dual-processor UNIVAC ...
The Lisp/1100 system was fairly typical for its time: Deep binding with an a-list for example; the Compiler never allocated simple objects (e.g., integers) on the stack (all Lisp objects live in the heap); etc. ...
I worked inside (and as a user) of Eric's gorgeous Lisp for many years and only found (and corrected) one bug. The AND function (really a special form) is supposed to evaluate its arguments from left to right and to immediately exit on the first argument that evaluates to nil and leave the rest unevaluated. His original AND evaluated all arguments in any case - I found that problem with some Lisp code where one of the arguments had a side-effect that incorrectly happened with a previous argument that evaluated to nil."
[Jack Harper, personal communication to Paul McJones, August 7, 2012]
- Jack Harper. Univac 1100 LISP Documentation and Source Browser.
- Eric Norman. LISP Primer. http://www.frobenius.com/primer.htm
- Eric Norman and Rick LeFaivre. LISP Reference Manual. http://www.frobenius.com/reference.htm
- Eric Norman. Interpreter source code (ASM). Version 8.4, circa 1970? http://www.frobenius.com/interpreter.htm
- Eric Norman. Compiler source code (LISP). Circa 1970? http://www.frobenius.com/compiler.htm
- Rick LeFaivre. Description of 1108 MICRO-PLANNER. October 16, 1973. http://www.frobenius.com/plannerdoc.htm
- ???. MICRO-PLANNER source code (LISP). http://www.frobenius.com/planner.htm
- Jack Harper. First-Order Predicate Calculus Theorem Prover source code (LISP). Written for University of Houston EE-562 Artificial Intelligence class, Professor Samuel Lee, Spring 1974. http://www.frobenius.com/theorem.htm
- Rick LeFaivre. Fuzzy Logic source code (LISP). Circa 1976. http://www.frobenius.com/fuzzy.htm
- Eric Norman and Rick LeFaivre. Editor source code (LISP). Circa 1976. http://www.frobenius.com/editor.htm
- Eric Norman and Rick LeFaivre. Debugger source code (LISP). Circa 1976. http://www.frobenius.com/debugger.htm
- Eric Norman and Rick LeFaivre. PrettyPrint source code (LISP). Circa 1976. http://www.frobenius.com/prettyprint.htm
- Eric Norman and Rick LeFaivre. Arithmetic source code (LISP). Circa 1976. http://www.frobenius.com/arithmetic.htm
- Jack Harper. Post-mortem dump, Univac 1108 Lisp. Microsoft Word PDF
"The system was started and then an octal dump was taken of memory that shows the Lisp system in all of its radiant glory...
If you know the system, various things leap out of the octal - the BIBOP pages, atomic symbols (with print names in the 6-bit UNIVAC "fielddata" character set, page tables, etc :)
I have no idea if this might be of any use to you.
It might - if nothing else, to show the "young whippersnappers" out there what we old guys had to live with "back in the day" :)
I spent years of my younger life staring at such printouts at 0200 in the cold raised floor computer room slowly getting more and more pasty colored from the fluorescent lights :)"
[Jack Harper, personal communication to Paul McJones, August 10, 2012]
"ALISP [was] a native Lisp for the CDC Cyber 7200 that was written by Kurt Konolige when he was an undergrad at Amherst College (the "A" in ALISP) around 1975-1976 (before he started grad school at UMass). (The first version of John Lowrance's GRASPER system, which eventually became GRASPER-CL at SRI, was written in ALISP. I wrote the AVL-tree-based "graph paging" substrate for GRASPER, mostly from midnight-5AM when we could get some reasonable space/cycles on the time-shared Cyber.) Following CDC ALISP lineage for a moment, ALISP was eventually replaced with work on a native Common Lisp that was headed by Richard Hudson." [Dan Corkill, personal communication, September 4, 2010]
- Kurt Konolige. ALISP User's Manual. University of Massachusetts Computing Center, Graduate Research Center, Amherst, MA, 1975-1977. Gift of Richard L. Hudson. PDF
"ALISP is a timesharing and batch LISP 1.5 system operating on the CDC Cyber-74 installation at UMASS. It is similar to the ALISP system previously operating on UMASS timesharing with the CDC 3600/3800. ... ALISP runs under KRONOS or NOS operating systems on CDC 6600 series computers."
- Kurt Konolige. The ALISP Relational Database. COINS Technical Report 77-9, University of Massachusetts, July 1977.
- John D. Lowrance. GRASPER 1.0 Reference Manual. COINS Technical Report 78-20, University of Massachusetts, December 1978, 12+396 pages. Gift of John D. Lowrance. PDF
"This document constitutes a reference manual for GRASPER 1.0, a programming language extension that provides graph processing capabilities. ... GRASPER 1.0 was developed as a data base support facility for the VISIONS system."
GRASPER 1.0 ran ALISP on the CDC Cyber-74 installation at the University of Massachusetts Computing Center. Another version based on LISP F3 ran on the VAX 780 of the Computer and Information Science Research Lab at the University of Massachusetts.
- John D. Lowrance and Daniel D. Corkill. The Design of GRASPER 1.0: A Programming Language Extension for Graph Processing. COINS Technical Report 79-6, University of Massachusetts, February 1979, 45 pages. Gift of John D. Lowrance. PDF