Software Preservation Group of the Computer History Museum

INTERLISP family

INTERLISP Reference Manual

Previous: LISP 2 family - Up: LISP - Next: MACLISP family

Basic PDP-1 LISP

L. Peter Deutsch developed PDP-1 LISP at M.I.T.:

"I wrote PDP-1 Lisp because I had a strong mathematical bent, I'd become intrigued with the Lisp language as a result of having somehow picked up a copy of the original Lisp 1.5 Programmer's Manual at MIT, and I wanted to have an interactive Lisp implementation to play with rather than having to submit card decks at the M.I.T. Computation Center. (Bear in mind that I was in high school at the time -- 1960-1964.) I'd ingratiated myself with the folks at the TX-0 (and later PDP-1) lab at M.I.T., so I had pretty free access to the machine there." [L. Peter Deutsch, quoted in lisp_doc.txt accompanying Bob Supnik's Software Kit]

Source code

Documentation

Applications

SDS 930 LISP

BBN-LISP

The first LISP at Bolt Beranek and Newman Inc. was influenced by L. Peter Deutsch's Basic PDP-1 LISP:

"... my PDP-1 Lisp implementation, as you probably know, was extensively rewritten at BB&N to become the conceptual predecessor of BBN-Lisp, which in turn engendered Interlisp" [L. Peter Deutsch, quoted in lisp_doc.txt accompanying Bob Supnik's Software Kit]

"Bobrow and Murphy started with the LISP 1.5 definition and looked at Deutsch's code for the PDP-1b, but their implementation had a completely new code base for what they called BBN-LISP. [Bobrow et al. February 1966] Murphy says,

`. . . one of the things we did was build a timesharing LISP system on the PDP-1 — that is, a multi-user system for which the primary (and only) interface language was LISP. It was both the command language and the programming language, a la JOSS and such systems of that day.'

In their PDP-1b implementation of LISP, Bobrow and Murphy grappled with issues of supporting a large LISP memory on a machine with a small physical memory. [Bobrow and Murphy 1967]

In particular, Murphy implemented a software-based virtual memory and demand paging system[Dan Murphy in Origins and Development of TOPS-20] within his LISP implementation, and Bobrow and Murphy studied its performance. [Bobrow and Murphy 1968]"
[Walden and Nickerson, A Culture of Innovation: Insider Accounts of Computing and Life at BBN, 2011]

Source code

Dan Murphy had an extensive archive of old sources for BBN LISP (and many other things including TENEX, TELCOMP, and TECO), but the disk pack containing them fell victim to an overzealous sysadmin in 1987. He still has a set of files in LISP and PDP-10 assembly language. [Personal communication to Paul McJones, 10 March 2005.]

Documentation

Papers

Applications

INTERLISP

See also: Interlisp-D.

Source code

Documentation

Applications

Papers

INTERLISP/FORTRAN: F1, F2, F3 and F4

Influenced by BBN-LISP and then INTERLISP, 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 Nordström 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 Nordström, 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].

Lisp F2 was a modification of Lisp F1 developed at Clarkson College of Technology (now Clarkson University). It ran on an IBM System/360 Model 44 under 44MFT, a local variant of IBM's PS44 or 44PS through 1976, and then on an IBM 360 model 65 under OS/360 MVT.

Nordström produced a final version, Lisp F4, in the early 1980s; see below.

[What is the relationship, if any, between Nordström's FORTRAN implementations and INTERLISP/360-370?]

Source code

Documentation

(Most of these items are from Stoyan.)

INTERLISP/360-370

In the mid 1970s at Uppsala University, an implementation of BBN-Lisp/INTERLISP was created for the IBM 360/370; it also ran on compatible computers such as Siemens and some Japanese ones. The main implementor was Jaak Urmi, after consultation with Warren Teitelman. Jim Goodwin moved from BB&N to the research group at Uppsala.

"Jaak Urmi, of Uppsala University in Sweden, who is implementing an INTERLISP for the IBM 370, visited PARC and engaged in a length)ydiscussion about the INTERLISP Virtual Machine with several PARC scientists (Bobrow. Deutsch, Moore, Teitelman). The result was a much greater degree of agreement between his implementation on INTERLISP as it is currently implemented. Should this implementation become available in the United States, transporting existing INTERLISP programs to the 370 implementation will be much easier." [Teitelman 1976]

Interlisp-11 (PDP-11)

INTERLISP-VAX

Interlisp-D

"I think the right thing to do, when thinking about the history of Interlisp, is to distinguish between INTERLISP, a teletype/interactive terminal timesharing system application, and Interlisp-D, a single user, window/mouse/keyboard, personal workstation system based on a single virtual machine.

INTERLISP ran on Tenex, Tops-20, VAX. There was a 'Jericho' port at BBN. There were discussions of ports to IBM System/360, but I don't think they were real.

INTERLISP programs could generally be ported to Interlisp-D with no changes to source code. Interlisp-D programs were binary compatible; it was possible to suspend and save the state of one of the virtual machines on one workstation (make a 'sysout') and restart it on another. In fact, the software build process consisted of us running a kernel Lisp loader that fired up an initial image, that then used Lisp code to load the rest of the system.

'Alto Lisp' was an interim step in the evolution between INTERLISP and Interlisp-D.

Interlisp-D ran on Dorado (Xerox 1132), Dolphin (Xerox 1100), Dandelion (Xerox 1108), Dandetiger (Xerox 1109), and Daybreak (Xerox 1186), all microcoded machines. The Dandelion and Daybreak used the same microcode, but the other machines were independent. The Dorado and Dolphin implementations had an Alto/BCPL operating system "boot loader", and some kernel OS functions like disk access were implemented in BCPL. The Dandelion and Daybreak machines had microcoded boot loaders.

There was a port of the byte-code interpreter to C started by Fuji Xerox and finished at PARC. The result was a version of Interlisp-D that ran on Suns and Unix. This implementation was later ported to Linux.

At some point during the evolution of Interlisp-D, a full implementation of Common Lisp was included; Interlisp and Common Lisp code shared the same runtime."
[Larry Masinter. Personal communication to Paul McJones, June 9, 2005; update from Nick Briggs, August 31, 2020.]

In 1992, Daniel G. Bobrow, Richard R. Burton, L. Peter Deutsch, Ronald M. Kaplan, Larry Masinter, and Warren Teitelman received the ACM Software System Award:

"For their pioneering work in programming environments that integrated source-language debuggers, fully compatible integrated interpreter/compiler, automatic change management, structure-based editing, logging facilities, interactive graphics, and analysis/profiling tools in the Interlisp system."

Documentation

Papers and books

Implementation - commercial

Previous: LISP 2 family - Up: LISP - Next: MACLISP family