Personal tools
You are here: Home Projects LISP Interlisp family
Document Actions

Interlisp family

by Paul McJones last modified 2014-08-08 20:35

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

  • L. Peter Deutsch. PDP-1 Lisp. Research Laboratory for Electronics, Massachusetts Institute of Technology, 4 pages. PDF at bitsavers.org

    "A program has been written for the PDP-1 providing a subset of the features of the LISP interpreter for the IBM 709/7090. This program, which contains no known bugs, will run on any PDP-1 with automatic divide. On machines with more than 4K of memory, it must be run in memory field 0.

    It is assumed that the reader is familiar with 709 LISP in general and with the LISP 1.5 Programmer's Manual in particular."

  • P. Deutsch. Preliminary Guide to the LISP Editor. Project Genie Document W-21, University of California, Berkeley, April 18, 1967. PDF

    "The editor described here is implemented within the PDP-l and SDS 940 time-sharing LISP systems, but can be used with minor changes within any LISP system which includes the capabilities of LISP 1.5. It was begun by the author in 1965 and later extended by Bobrow and Teitelman at BBN."

 

SDS 930 LISP

  • L. Peter Deutsch and Butler W. Lampson. 930 LISP Reference Manual. Project Genie Document 30.50.40, University of California, Berkeley, revised November 16, 1965. PDF at bitsavers.org

 

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.]
  • Section 4 of [Bobrow et al. 1966] below gives the source code for all the standard functions implemented in LISP.

Documentation

  • Daniel G. Bobrow, D. Lucille Darley, Daniel L. Murphy, Cynthia Solomon, and Warren Teitelman. The BBN-LISP System. Scientific Report No. 1., Project No. 8668, Contract No. AF19(628)-5065, BBN Report 1346, Bolt, Beranek and Newman Inc., Cambridge, Massachusetts, February 1966, 82 pages. PDF

    This report describes the LISP system for a PDP-1 with 8392 18-bit words of 5 microsecond core memory and 92,312 words on a drum with an average access time of 16.5 milliseconds. It describes the internal structure including paging and binding techniques. Section III defines all the standard functions; Section IV gives the source code of all the standard functions implemented in LISP.

  • D. G. Bobrow and W. Teitelman. Format-Directed List Processing in LISP, BBN Report 1366, April 1, 1966. PDF at dtic.mil
  • Daniel G. Bobrow [and Daniel L. Murphy]. Preliminary Specification for BBN 940 LISP. [Bolt, Beranek and Newman Inc.,] October 13, 1966, 16 pages. PDF
  • D. G. Bobrow, L. P. Deutsch, and D. L. Murphy. General Structure of LISP 1.69. 940 LISP Memo 1, [Bolt, Beranek and Newman Inc.,] March 23, 1967, 24 pages. PDF at bitsavers.org
  • Warren Teitelman. Recent Improvements to 940 LISP Library. 940 LISP Memo 2, [Bolt, Beranek and Newman Inc.,] April 10, 1967, 6 pages. PDF at bitsavers.org
  • Daniel G. Bobrow, D. Lucille Darley, L. Peter Deutsch, Daniel L. Murphy, and Warren Teitelman. The BBN 940 LISP System. Scientific Report No. 9, Bolt Beranek and Newman Inc., July 15, 1967. PDF

    "This report describes the LISP system implemented at BBN on the SDS 940 Computer. This LISP is an upward compatible extension of LISP 1.5 for the IBM 7090, with a number of new features which make it work well as an on-line language. These new features include tracing, and conditional breakpoints in functions for debugging and a sophisticated LISP oriented editor. The BBN 940 LISP SYSTEM has a large memory store (approximately 50,000 free words) utilizing special paging techniques for a drum to provide reasonable computation times. The system includes both an interpreter, a fully compatible compiler, and an assembly language facility for inserting machine code subroutines."

  • W. Teitelman. Design and Implementation of FLIP, a LISP Format Directed List Processor, BBN Report 1495, July 1, 1967. PDF
  • D. G. Bobrow, D. L. Murphy, and W. Teitelman. The BBN-LISP System : Reference Manual. Bolt Beranek and Newman Inc., April 1969. Computer History Museum: gift of Johns F. ("Jeff") Rulifson, Lot X6502.2012. PDF at bitsavers.org

    "This document describes the BBN-LISP system currently implemented on the SDS 940."

  • W. Teitelman, D. G. Bobrow, A. K. Hartley, and D. L. Murphy. BBN-LISP : TENEX Reference Manual. Bolt, Beranek and Newman Inc., Cambridge, Massachusetts, July 1971. Computer History Museum: gift of Larry Masinter, Lot X6058.2011. PDF
  • W. Teitelman, D. G. Bobrow, A. K. Hartley, and D. L. Murphy. BBN-LISP : TENEX Reference Manual. Bolt, Beranek and Newman Inc., Cambridge, Massachusetts, first revision, February 1972.
  • W. Teitelman, D. G. Bobrow, A. K. Hartley, and D. L. Murphy. BBN-LISP : TENEX Reference Manual. Bolt, Beranek and Newman Inc., Cambridge, Massachusetts, second revision, August 1972. PDF at bitsavers.org

Papers

  • Daniel G. Bobrow and Daniel L. Murphy. Structure of a LISP system using two-level storage. Communications of the ACM, Volume 10, Issue 3, March 1967, pages 155-159. ACM DL

    "Abstract: In an ideal list-processing system there would be enough core memory to contain all the data and programs. Described in this paper are a number of techniques that have been used to build a LISP system utilizing a drum for its principal storage medium, with a surprisingly low time penalty for use of this slow storage device. The techniques include careful segmentation of system programs, allocation of virtual memory to allow address arithmetic for type determination, and a special algorithm for building reasonably linearized lists. A scheme for binding variables is described which is good in this environment and allows for complete compatibility between compiled and interpreted programs with no special declarations."

    Describes BBN LISP on a Digital Equipment Corporation PDP-1 with a core memory of 16K 18-bit words (5 microseconds access time) and a drum memory of 88K words (17 milliseconds average access time).

  • Daniel G. Bobrow and Daniel L. Murphy. A note on the efficiency of a LISP computation in a paged machine. Communications of the ACM, Volume 11 , Issue 8, August 1968, pages 558, 560. ACM DL

    "Abstract: The problem of the use of two levels of storage for programs is explored in the context of a LISP system which uses core memory as a buffer for a large virtual memory stored on a drum. Details of timing are given for one particular problem."

    Discusses BBN LISP on the SDS 940, which had 16K of 24-bit core memory and 1M words of drum memory (17 milliseconds average access time).

  • Dan Murphy. TENEX and TOPS-20 Papers. Online at www.opost.com/dlm/tenex

    TENEX and TOPS-20 were popular operating systems for running LISP. See especially Origins and Development of TOPS-20 for extensive background on the PDP-6, PDP-10, LISP, and more.

 

INTERLISP

 

See also: Interlisp-D.

Source code

  • Thomas C. Rindfleisch, archivist. System dumps, SUMEX-AIM.

    Rindfleish notes: "This version of Interlisp should be both TENEX and TOPS20 compatible. It came at a time when lots of work was going on to port Interlisp to other environments, including the VAX and the new personal Lisp machines (Dolphins, etc.). This means little was changing in the TENEX/TOPS20 version." Rindfleisch also has tape images containing various .sav files created from these files.

    • Partial contents of <lisp> directory from a system dump, January 31, 1982. .zip
    • Contents of <lisp> directory from final full dump, February 25, 1983. Also contains lisp.mac.829 from the <lisp> directory from the January 31, 1982 dump. .zip
    • Contents of <lispusers> directory from final full dump, February 25, 1983. .zip
    • Contents of <helpsys> directory from final full dump, February 25, 1983. .zip
  • SDF Public Access UNIX System, archivist. Contents of TWENEX.ORG Interlisp directories, retrieved by Larry Masinter, August 18, 2006.

    Masinter notes: "The TWENEX files seem to have come from Sumex, or at least, there are a lot of sumex-specific files there. The file dates are 1984, the latest seems to be 7-Dec-84. I used 'type a' FTP for the source files and 'type I' retrieval for the binary files, since the PDP-10 is a 9-bit-byte / 36-bit-word machine."

      • Contents of <lisp> directory. .zip
      • Contents of <lispusers> directory. .zip

Documentation

Papers

  • Warren Teitelman. PILOT: a Step Toward Man-Computer Symbiosis. Ph.D. Thesis. MIT-AI-TR-221, Massachusetts Institute of Technology, September 1966. PDF at MIT

    "Interlisp (and BBN-Lisp before it) introduced many radical ideas into Lisp programming style and methodology. The most visible of these ideas are embodied in programming tools, such as the spelling corrector, the file package, DWIM, CLISP, the structure editor, and MASTERSCOPE.

    The origins of these ideas can be found in Warren Teitelman's PhD dissertation on man-computer symbiosis. In particular, it contains the roots of structure editing (as opposed to "text" or "tape" editing, breakpointing, advice, and CLISP." [Steele and Gabriel 1993]

  • Warren Teitelman. Automated programmering - the programmer's assistant. Proceedings of the Fall Joint Computer Conference, AFIPS, December 1972, pages 915-921. PDF
  • Warren Teitelman. CLISP - Conversational LISP. Proceedings of the Third International Joint Conference on Artificial Intelligence, Stanford University, California, 1973, pages 686-690. PDF
  • Daniel G. Bobrow and Ben Wegbreit. A model and stack implementation of multiple environments. Communications of the ACM, Volume 16 , Issue 10, October 1973, pages 591-603. ACM DL

    "One of the most innovative of the language extensions introduced by Interlisp was the spaghetti stack. The problem of retention (by closures) of the dynamic function-definition environment in the presence of special variables was never completely solved until spaghetti stacks were invented." [Steele and Gabriel 1993]

  • Warren Teitelman. INTERLISP. ACM SIGART Bulletin, Issue 43, December 1973, pages 8-9. ACM DL
  • Warren Teitelman. INTERLISP Documentation. ACM SIGART Newsletter, Issue 44, February 1974, page 10. ACM DL
  • D.G. Bobrow. A Note on Hash Linking. Communications of the ACM, Volume 18, Number 7, July 1975, pages 413-415. ACM DL
  • W. Teitelman and L. Masinter. The Interlisp programming environment. IEEE Computer, Volume 14, Number 4, April 1981, pages 25-34. IEEE Xplore online at larry.masinter.net

 

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.

  • Anonymous. INTERLISP/360 and 370 Reference Manual. Uppsala Datacentral, Sweden, 1974.
  • Anders Haraldsson. LISP - details : INTERLISP/360-370. Datacentral, Department of Computer Science, Uppsala University, 1975. PDF

 

INTERLISP-VAX

  • Larry M. Masinter. Interlisp-VAX: A Report. Report No. SUN-CS-81-879 (also numbered: HPP-81-14), Department of Computer Science, Stanford University, August 1981. Computer History Museum: gift of Larry Masinter, Lot X6058.2011. PDF online at stanford.edu
  • Raymond Bates, David Dyer, Andrea Ignatowski, Johannes Koomen, Steven Saunders, and Donald Voreck. Interlisp-VAX Users Manual. Interlisp-VAX Project, USC Information Sciences Institute, Marina del Rey, California, December 5, 1982, 57 pages. PDF
  • Raymond L. Bates, David Dyer, and Johannes A.G.M. Koomen. Implementation of Interlisp on the VAX. Proceedings of the 1982 ACM symposium on LISP and functional programming, Pittsburgh, Pennsylvania, United States, 1982, pages 81-87. ACM DL

 

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), Daybreak (?), 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]

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

  • Michael Sannella, editor. Interlisp Reference Manual. Xerox Corporation, October 1983. PDF
  • Michael Sannella, editor. Interlisp-D Reference Manual. Xerox Corporation, October 1985.
  • Anonymous. Interlisp-D Release Notes. Xerox Corporation, December 1985. PDF at bitsavers.org

    This describes the Kyoto release, which was followed by the Lyric and final Medley releases.

  • Cynthia Cosic. Interlisp-D: A Friendly Primer. Artificial Intelligence Systems, Xerox Corporation, November 1986. PDF at bitsavers.org
  • Lyn Ann Mears and Ted Rees. Xerox LOOPS, A Friendly Primer. Artificial Intelligence Systems, Xerox Corporation, March 1987. PDF at bitsavers.org
  • Anonymous. Xerox Common Lisp Implementation Notes. Lyric Release, June 1987. PDF at bitsavers.org Index. PDF at bitsavers.org

    "These notes are intended to accompany the Guy L. Steele book, Common Lisp: the Language which represents the current standard for Common Lisp."

 

Papers

  • L. Peter Deutsch. A LISP machine with very compact programs. Proceedings of the Third International Joint Conference on Artificial Intelligence, Stanford University, California, 1973. PDF
  • P. Deutsch. Status report on Alto Lisp. Computer Science Laboratory, Palo Alto Research Center, Xerox Corporation, May 14, 1975. PDF at bitsavers.org
  • L. Peter Deutsch and Daniel G. Bobrow. An efficient, incremental, automatic garbage collector. Communications of the ACM, Volume 19, Issue 9, September 1976, pages 522-526. ACM DL
  • L. Peter Deutsch. Inside Interlisp: Two Implementations. Xerox Palo Alto Research Center, November 26, 1978. PDF
  • L. Peter Deutsch. Experience with a microprogrammed Interlisp system. Proceedings of the 11th annual workshop on Microprogramming, Pacific Grove, California, 1978, pages 128-129. ACM DL
  • Daniel G. Bobrow and Douglas W. Clark. Compact Encodings of List Structure. ACM Transactions on Programming Languages and Systems, Volume 1, Number 2, October 1979, pages 266-286. ACM DL
  • Larry M. Masinter and L. Peter Deutsch. Local optimization in a compiler for stack-based Lisp machines. Proceedings of the 1980 ACM conference on LISP and functional programming, Stanford University, pages 223-230. ACM DL
  • L. Peter Deutsch. ByteLisp and its Alto implementation. Proceedings of the 1980 ACM conference on LISP and functional programming, Stanford University, pages 231-242. ACM DL
  • Richard R. Burton, L. M. Masinter, Daniel G. Bobrow, Willie Sue Haugeland, Ronald M. Kaplan, and B. A. Sheil. Overview and status of DoradoLisp. Proceedings of the 1980 ACM conference on LISP and functional programming, Stanford University, pages 243-247. ACM DL
  • Richard R. Burton, Ronald M. Kaplan, Larry M. Masinter, B.A. Sheil, Alan Bell, Daniel G. Bobrow, L. Peter Deutsch and Willie Sue Haugeland. Papers on Interlisp-D. Report SSL-80-4 revised, Palo Alto Research Center, Xerox Corporation, September 1980, ii+52 pages. PDF
  • Beau Sheil. INTERLISP-D: Further Steps in the Flight from Time-Sharing. ACM SIGART Bulletin, Issue 77, July 1981, pages 31-32. ACM DL

    A version of this paper was included in the revised version of SSL-80-4 revised.

  • Warren Teitelman. History of Interlisp. In: C. Herzeel, editor. Celebrating the 50th Anniversary of Lisp (Nashville, Tennessee, October 20 - 20, 2008). LISP50. ACM, New York, NY. ACM DL

 

Implementation - commercial

 

Previous: LISP 2 family - Up: LISP - Next: MacLisp family
December 2012 »
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
 

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: