- DECUS PDP-8 LISPs
- Uppsala Lisp: F1, F3 and F4
- Lisp 1.6 for IBM 1130 (Boston Latin School)
- CIMAS (National University of Mexico) LISP
- MTS LISP (Michigan Terminal System, University of Michigan)
- ECSD Lisp (Edinburgh Computer Science Department)
- Harvard LISP
- PDP-11 LISP (Massachusetts Institute of Technology)
- COINS Lisp for VAX/VMS (University of Massachussets Amherst)
- LispKit Lisp (Oxford University)
- G. van der Mey and W. L. van der Poel. A LISP Interpreter for the PDP-8. Technical University of Delft, The Netherlands, DECUS Number 8-102a, May 1968. PDF at bitsavers.org
van der Poel was the designer of the early Stantec ZEBRA computer, and van der Mey implemented ALGOL and LISP for the ZEBRA.
- William Neal. LISP-8. Submitted by Ernest Hayden, Speech Communications Research Laboratory, Santa Barbara, California, DECUS Number 8-341, December 16, 1970. PDF at bitsavers.org
"The operating system is relatively small, and programs require less space [than with DECUS 8-102a] since a distinction is made between program and data. This is less flexible and leads to irreconciliable differences between LISP 1.5 and LISP-8, but it is more efficient for a small computer such as a PDP-8."
- Larry Davis. LISP 1.5 Interpreter for PDP-8 with OS/8. Washington University. DECUS Number 8-628. Source and executable versions. Online at dbits.com Online at bitsavers.org
"Modified version of DECUS NO. 8-102A for use under OS/8 (PS/8). OS/8 file input and output is allowed, which enables the user to prepare LISP programs using OS/8 EDIT. Input and output in ASCII. Facilities for writing own code in assembler to be added to the interpreter for evaluation of special functions are provided for."
Modified by Davis on January 28, 1972 and March 9, 1972; modified by Torbjorn Alm, Autocode AB, on May 15, 1973; submitted to DECUS by Robert Hassinger, Liberty Mutual Research Center, Hopkinton, MA.
- Marton Zsenei. LISP-8K. Central Research Institute for Physics, Budapest, Hungary, DECUS Number 8-721, June 1977.
"This is an 8K version of the LISP Interpreter (see DECUS No. 8-102). Only the differences are given in the documentation so it would be well to request the 8-102 write-up as well."
Uppsala Lisp: F1, F3 and F4
Mats Nordström and his colleagues at the University of Uppsala in Sweden developed a series of Lisp implementations written in Fortran.
"LISP 1.5 INTERPRETER WRITTEN IN FORTRAN
A simple Lisp 1.5 interpreter has been written in Fortran by Mats Nordstrom at Uppsala University. The system follows closely the definition of eval given in the Lisp 1.5 User' Manual; in particular, it uses an A-list (rather than a linear stack for variable bindings). Some 'modern' features have been included, such as nospread lambdas and implicit progns.
The interpreter is oriented toward interactive use, but with minor modifications it can be used in batch mode. It is intended for those who want to implement Lisp quickly and provisionally for a new computer, and for tutorial purposes in teaching interpreters and Lisp implementation. The program is carefully commented and documented. Educational and research institutions can obtain a copy free of charge by writing to the following address: Mats Nordstrom, Datalogilaboratoriet, Sysslomansgaten 25, S-752 23, Uppsala, Sweden." [SIGPLAN Notices, Volume 6, Number 5, July 4, 1971, page 6 (News section) ACM DL]
The original motivation was to be able to run Lisp programs on computers elsewhere in Sweden via a remote processing capability; the portability allowed these systems to be ported to various computers at Uppsala and elsewhere. Lisp F1 was compatible with Lisp 1.5 with extensions from BBN Lisp; it was written in Fortran IV and ran on IBM computers. Its development began in January 1970, and it was usable by September 1970; subsequent work increased its performance. Lisp F3 was compatible with INTERLISP, and thus could run many INTERLISP packages such as EDIT, MAKEFILE, BREAK, ADVISE and TRACE. Its development began in 1976. For more detail, see chapter 4 of Herbert Stoyan's book [Online at informatik.uni-erlangen.de via archive.org].
Nordström produced a final version, Lisp F4, in the early 1980s; see below.
- Blake McBride. C translation of Mats Nordström's Lisp F4. Online at blake.mcbride.name
Nordström supplied to McBride what is believed to be the final snapshot of Lisp F4, from August 22, 1983, with permission to distribute it. McBride includes Nordström's original code absolutely complete and untouched including documentation, Fortran source code, lisp code, etc. -- see the file lispf4.orig in the archive.
(Most of these items are from Stoyan.)
- M. Nordström, E. Sandewall and J. Urmi. How to Start Using Uppsala's 3600 LISP System, Report No. 23, Department of Computer Sciences, Uppsala University, August 1969.
- M. Nordström, E. Sandewall, and D. Breslaw. LISP F1, a FORTRAN Implementation of LISP 1.5, Datalogilaboratoriet, Department of Computer Sciences, Uppsala University, 1971.
- G.R. Hoffmann and L. Timner and H. Wallberg. LISP F 1.1 for CDC-3000 L Computer Series, Zentrum f. Datenverarbeitung, Universität Tuebingen, April 1971.
- G.R. Hoffmann, L. Timner, and H. Wallberg. LISP F1: Interne Beschreibung, Zentrum f. Datenverarbeitung, Universität Tuebingen, 1971?.
- See INTERLISP/360-370 manuals in Interlisp section.
- Mats Nordström. LISP F3 User's Guide. Department of Computer Science, Uppsala University.
- Technical Report DLU 78/4, Datalogilaboratoriet, June 1978. PDF
- Technical Report DLU 79/1, Uppsala Programming Methodology and Artificial Intelligence Laboratory, 1979.
- Technical Report DLU 79/19, Uppsala Programming Methodology and Artificial Intelligence Laboratory, 1979.
- Mats Nordström. LISP F3: Implementation guide and system description. Datalogilaboratoriet, June 1978. PDF
- Nick Briggs and Andrew Gullen. CP-6 LISP USERS GUIDE, Carleton University Computing Centre, Ottawa, Ontario, CANADA, K1S 586, May 1980. Revised version of: Mats Nordström, LISP F3 User's Guide, Technical Report DLU 78/4, Datalogilaboratoriet, Department of Computer Science, Uppsala University, June 1978. Computer History Museum: gift of James R. Meehan, Lot X6057.2011. PDF
CP-6 was an operating system for the Honeywell 6000 series.
"The basic structure of 1130 Lisp 1.6 is a composite of many features from four Lisp systems: 7090 Lisp, as described in the LISP 1.5 Programmer's Manual; Maclisp, developed at Project MAC at the Massachusetts Institute of Technology (MIT); Multics Lisp, developed on the Multics system at MIT; and Stanford A.I. Lisp, developed at the Stanford Artificial Intelligence Laboratory at Stanford University." [Steele, 1130 Lisp 1.6 User's Guide]
- Guy L. Steele Jr. Scan of listing. February 14, 1972.
- Fausto Saporito. Transcription of the listing.
- Ray Comas. Transcription of the code, other working files, and running LISP 1.6 image. November 15, 2008. ZIP archive at ibm1130.org
See http://ibm1130.org/sw/lisp for Ray's description of how he produced these files and how to run the code.
- Guy L. Steele Jr. 1130 Lisp 1.6 User's Guide : A Guide to the 1130 Lisp 1.6 system implemented for the IBM 1130 by Guy L. Steele Jr.
"The format and contents of this user's guide were borrowed to a great extent from the Stanford A.I. Lisp 1.6 Manual (Lynn H. Quam) as distributed by the Digital Equipment Computer Users Society as DECUS No. 6/10-38A."
"M. Magidin and I wrote an interpreter of Lisp for the B6700 in 1972 which was used mostly in education in several universities." [Raymundo Segovia, personal communication, May 2010]
- M. Magidin and R. Segovia. Manual Preliminar del Sistema LISP B-6700. Comunicaciones Técnicas del CIMAS, Volume III, Number 16, National University of Mexico, 1972.
- Mario Magidin and Raymundo Segovia. Implementation of LISP 1.6 on the B-6700 Computer. Comunicaciones Técnicas del CIMAS, Volume V, Serie B: Investigación, Number 70, National University of Mexico, 1974, 57 pages. PDF
- M. Díaz. Las Funciones Definidas en el Sistema LISP B-6700. Comunicaciones Técnicas del CIMAS (to be published, 1974).
The Lisp interpreter was written by Bruce Wilcox in order to run the Reitman-Wilcox Go Program. The compiler was written by Carole Hafner.
- Carole Hafner and Bruce Wilcox. LISP/MTS programmers manual. Mental Health Research Institute Communication No. 302, and Information Processing Working Paper No. 21, The University of Michigan, 1974.
- Bruce Wilcox and Carole Hafner. LISP/MTS User's Guide. Department of Computer Science, University of British Columbia, July 23, 1976. PDF
- Richard A. Salisbury, general editor. LISP and SLIP in MTS. Volume 8 of MTS: The Michigan Terminal System. June 1976 (updated January 1983). PDF at bitsavers.org
ECSD LISP (Edinburgh Computer Science Department)
Edinburgh Computer Science Department Lisp, or ECSD LISP, was implemented by N. H. Shelness. It was written in the IMP programming language and ran on the EMAS operating system. The Wikipedia IMP article contains links to a variety of information about IMP, including compilers targetted at modern platforms.
- N.H. Shelness. LISP for EMAS. Edinburgh Regional Computer Center, IMP source code. Online at history.dcs.ed.ac.uk
- Initialization script. Online at history.dcs.ed.ac.uk
This version contains the annotation "Updated by R.D. Eager University of Kent MCMLXXXII".
- N.H. Shelness. The E.C.S.D. LISP manual. Draft of December, 1976.
"The LISP shell is based on a Harvard LISP interpreter, running under UNIX on the Yale GEM system." [Ellis, 1980]
"Its roots are in a PDP-11 Lisp system which originally came from Harvard." [Foderaro et al. The Franz Lisp Manual]
- USENET 1977 distribution. Applications/Usenix_77/ug091377.tar.gz in any of the Unix Archive Sites
- Unix 2.9 BSD distribution, University of California Berkeley. .tar.gz at minnie.tuhs.org
See /src/ucb/lisp/ . Differs from USENET 1977 distribution because of edits made by Steve Dyer at the Harvard Science Center in March 1981.
- Forrest William Howard, Jr. L110 Programmer’s Manual. Harvard-Radcliffe Student Timesharing System, Science Center, Harvard University, September 28, 1975. PDF
- Forrest Howard. PDP-11 L110 System Description. Harvard-Radcliffe Student Timesharing System, Science Center, Harvard University, May 28, 1975. PDF
- Forrest Howard. lisp.direction. 1975? ASCII
- Lyle Ramshaw, revised by Forrest Howard. An Introduction to ED110. Applied Math 110, Harvard University, March 1974? PDF
- Lyle Ramshaw; revised by Forrest Howard. A User’s Guide to ED110. Applied Math 110, Harvard University, March 1974; revised June 1975. PDF
- Greg Nelson. Documentation for list structure insertion macro (/lib/lisp/mi.tec). ~1974. PDF
"My first experience with Lisp was when I read the Lisp 1.5 manual in high school. That's when I had my mind blown by the idea that there could be a computer language like that. The first time I had a chance to do anything with Lisp was when I was a freshman at Harvard and I wrote a Lisp interpreter for the PDP-11. It was a very small machine — it had something like 8k of memory — and I managed to write the interpreter in a thousand instructions. This gave me some room for a little bit of data. That was before I got to see what real software was like, that did real system jobs." [Stallman, My Lisp Experiences and the Development of GNU Emacs]
- Richard Stallman et al. LISP11 for PDP-11. .tar.gz at ultimate.com
Phil Budne, the proprietor of ultimate.com, says: "I've put the sources for a PDP-11 LISP called LISP11 whose sources lived (and were cross-compiled) under the MIT ITS O/S for the PDP-10 (I've also included versions of the assembler, and a simulator, with versions I modified to run under TOPS-20)."
"CLisp (which was short for COINS Lisp, COINS being the department acronym at the time) didn't have any relation to the C Language (it was a Lisp-1 written in native VAX/VMS Macro-32 assembler and was the first Lisp written for the VAX architecture, predating VaxLisp). It also had no relation to the current CLISP (ANSI Common Lisp), which came later. CLisp faded quickly into obscurity when Lisp in our department moved heavily and early to TI Explorers and CLTL1.
BTW, when we decided we had to develop COINS Lisp ... for VAX/VMS (UMass Amherst had one of the earliest VAX/780 machines delivered--I think it was unit #4 or 5), we needed to move Lisp applications to the new VAX from ALISP ...
Anyway, when the VAX arrived, we looked initially at LISP F3 (FORTRAN-based Interlisp dialect) to see if it could be made feasible, but performance and capability were just not there. The VAX architecture was enough different to make porting PDP dialects difficult. COINS Lisp started from an skeletal representation/evaluator base that George Carrette had written at MIT. COINS Lisp took advantage of the CISC instructions and data representations provided by the VAX architecture (e.g., array representations and indexing instructions, native string representations and instructions, etc.), and it ran very efficiently for that era. The initial DVMT (Distributed Vehicle Monitoring Testbed), a pioneering multi-agent environment was written in COINS Lisp. (GRASPER was also migrated from ALISP to COINS Lisp: fortunately no longer requiring the AVL-tree "graph paging" with the larger virtual-memory on the VAX.)" [Dan Corkill, personal communication, September 3, 2010]
"The code that George provided (very graciously, after a brief conversation with him at MIT) was in the Spring of 1978. (I wish I'd kept better notes and, more importantly the code from those days. The CS Department maintained archival backups for a very long time (over 20 years), but then stopped maintaining them. As I recall, George's code consisted of a basic interpreter, BBOP and low-bit fixnum type tagging, Lisp-1 dynamic binding, and a stop & copy GC (no compiler, as I recall). All this was written entirely in MACRO32 assembly language. It might have been a very early prototype [of VAX NIL], but I'm wondering if it was more of a experimentation vehicle for VMS & MACRO32? (Could it have been a hand translation of some other Lisp interpreter or an environment for playing with some of the Lisp implementation techniques of the era?) In any event, George's generosity of sharing the basic interpreter was what I needed to get buy-in in the Department to build our own system rather than waiting for someone else to do a high-performance Lisp for the VAX. It didn't take long after we had COINS Lisp ready (with its compiler) to entice users of ALISP to port their code over to COINS Lisp." [Dan Corkill, personal communication, September 10, 2012]
Lisp-1 systems (such as Scheme) have a single namespace for functions and values, while Lisp-2 systems (such as Common Lisp) have separate namespaces for functions and values. [See Gabriel and Pitman, Technical Issues of Separation in Function Cells and Value Cells, 2001.]
- Daniel D. Corkill. CLisp Reference Manual. Department of Computer and Information Science, University of Massachusetts Amherst, Amherst, Massachusetts, 1980. (Periodically revised through 1984.)
- Victor R. Lesser and Daniel D. Corkill. The Distributed Vehicles Monitoring Testbed: A Tool for Investigating Distributed Problem Solving Networks. The AI Magazine, Volume 4, Number 3, Fall 1983, pages 15-33. Online at aaai.org
LispKit Lisp (Oxford University)
"LispKit is the portable implementation technique for a purely functional programming language, LispKit Lisp. The implementation consists of a small virtual machine, and a corpus of language support software, itself written in LispKit Lisp. It is the size and simplicity of the virtual machine which gives the implementation its portability.
The language is a dialect of the Lisp language and shares two of the most powerful features of that language: the universal structured type, the list; and s-expression syntax which is both expressive and easily manipulated by program. It differs from full Lisp in that all LispKit programs must be written in a functional style, since there are no language primitives for updating data structures. The absence of destructive assignment greatly improves the intelligibility of programs, and is held to improve programmer productivity, by simplifying the creation and maintenance of correct programs.
Generally speaking, subexpressions are evaluated only if their values become necessary in the evaluation of a larger expression. This means that infinite values - for example the list of all the numbers, or of all the digits in the decimal expansion of an irrational number - may be handled in a natural way."
[Henderson et al. 1983]
Documentation and source
- Peter Henderson. Functional Programming : Application and Implementation. Prentice Hall International, 1980.
- Peter Henderson‚ Geraint A. Jones and Simon B. Jones. The LispKit Manual. Oxford University Computer Laboratory Programming Research Group, 1983.
"The principal text both on the LispKit implementation, and on the LispKit Lisp dialect, and a useful introduction to this manual, is Functional Programming: Application and Implementation ... . It describes a virtual machine and a language slightly different from those described in this manual, but familiarity with the system described in the book will help in an understanding of the current system, especially so if it is intended to make any changes to the virtual machine or to the system support software." [Henderson et al. 1983]
- Volume 1. Reference manual for the language, library, and utilities; implementation guides for the virtual machine. Technical Monograph PRG-32(1). Online at cs.ox.ac.uk
- Volume 2. Source code for examples, libraries, and implementations of LispKit virtual machine. Technical Monograph PRG-32(2). Online at cs.ox.ac.uk
- Source code distribution. .tar.gz (downloaded 13 May 2005) .tar.gz at ftp.comlab.ox.ac.uk
- Aaron Gray. LispKit GNU Pascal Port. Online at cybercomms.org via Internet Archive
PicoLisp is a minimalist Lisp (dynamic binding, interpreted, three datatypes: atoms, symbols, and lists) with a rich library (including persistent objects, Prolog-like declarative language, and template-based abstract GUI) supporting its use as a general application server. It was created by Alexander Burger starting in the late 1980s; Jon Kleiser contributed the OpenGL library.
- Alexander Burger. 8kLisp circa 1986-1987. CP/M program. .tar.gz
- Alexander Burger. Camballage. Includes PicoLisp circa 1991, embedded in a CAD application to control a laser cutter. X11/SCO Unix program. .tar.gz
- Alexander Burger. Isar. Includes PicoLisp circa 1993, embedded in an image processing application. Mac OS program. .tar.gz
- Alexander Burger. PicoLisp circa 1994. MS-DOS program. .tar.gz
- Alexander Burger. PicoLisp releases 2.0 - 3.1.0, 2002-2012. online at software-lab.de
- Alexander Burger. PicoLisp Documentation. Manpage, reference manual, FAQ, tutorial, etc. online at picolisp.com
- Alexander Burger. Pico Lisp: A Radical Approach to Application Development. June 26, 2006. Updated version of paper presented at 1st European Lisp and Scheme Workshop, Oslo, 2004. PDF at software-lab.de