|Paradigms||Multiparadigm: functional, procedural, object-oriented, declarative, reflective, meta|
Medley 2.0 / February 1992
|Platform||PDP-1, PDP-10, MOS Technology 6502, Atari 800; Xerox 1100, 1108, 1109, 1186, 1132|
|Lisp Machine Lisp|
Interlisp (also seen with a variety of capitalizations) is a programming environment built around a version of the programming language Lisp. Interlisp development began in 1966 at Bolt, Beranek and Newman (renamed BBN Technologies) in Cambridge, Massachusetts with Lisp implemented for the Digital Equipment Corporation (DEC) PDP-1 computer by Danny Bobrow and D. L. Murphy. In 1970, Alice K. Hartley implemented BBN LISP, which ran on PDP-10 machines running the operating system TENEX (renamed TOPS-20). In 1973, when Danny Bobrow, Warren Teitelman and Ronald Kaplan moved from BBN to the Xerox Palo Alto Research Center (PARC), it was renamed Interlisp. Interlisp became a popular Lisp development tool for artificial intelligence (AI) researchers at Stanford University and elsewhere in the community of the Defense Advanced Research Projects Agency (DARPA). Interlisp was notable for integrating interactive development tools into an integrated development environment (IDE), such as a debugger, an automatic correction tool for simple errors (via do what I mean (DWIM) software design, and analysis tools.
Peter Deutsch defined a byte-coded instruction set for Interlisp, and implemented it as a microcode emulator for the Xerox Alto. This was then ported to a series of workstation designs produced by Xerox for internal use and for commercial exploitation, including on the Xerox 1100 (Dolphin), 1108 (Dandelion), 1109 (the floating-point enabled Dandetiger), 1186 (Daybreak), and 1132 (Dorado). Interlisp implementations for these were known collectively as Interlisp-D. Commercially, these were sold as Lisp machines and branded as Xerox AI Workstations when Larry Masinter was the chief scientist of that group. The same designs, but with different software, were also sold under different names (e.g., when running the Viewpoint system, the 1186 Daybreak was sold as the Xerox 6085.) Releases of Interlisp-D were named according to a musical theme, which ended with Koto, Lyric, and Medley. Later versions included an implementation of pre-American National Standards Institute (ANSI) Common Lisp, named Xerox Common Lisp. LOOPS, the object system for Interlisp-D, became, along with Symbolics' Flavors system, the basis for the Common Lisp Object System (CLOS).
In 1974, DARPA awarded a contract to the University of California, San Diego (UCSD) to implement Interlisp on the Burroughs B6700. The motivation was the larger virtual memory addressing space afforded by the B6700 architecture compared to the PDP-10. However, by the time the software was released (1975), the PDP-10's address space had been increased, and Interlisp-10 remained the standard of the day for AI research. The implementors were Bill Gord and Stan Sieler, with guidance from Daniel Bobrow, and under the overall management of Dr. Ken Bowles. UCSD Interlisp included a compiler which emitted "p-code", which was could be intermixed with standard LISP code during interpretation. This p-code appears to have preceded UCSD Pascal p-code by a year or two.
The PDP-10 version of Interlisp became Interlisp-10; BBN had an internal project to build Interlisp-Jericho and there was a 1982 port to Berkeley Software Distribution (BSD) Unix on the VAX by Stanford University, Information Sciences Institute (ISI) and Xerox PARC, called Interlisp-VAX.
Also in 1981, a variant for the MOS Technology 6502 processor, INTER-LISP/65, was released by Datasoft for the Atari 800. In 1985 to 1987, a team from Fuji Xerox developed an implementation of the microcoded bytecode interpreter in the language C, and, together with Xerox AI Systems (XAIS) in Sunnyvale, California, completed the port of the environment and emulator to the Sun Microsystems SPARC 4 architecture. In 1987, XAIS was spun off into Envos Corporation, which failed almost immediately.
Interlisp-D release timeline:
- 1983 – Chorus
- 1983 – Fugue
- June 1984 – Carol
- January 1985 – Harmony
- 1985 – Intermezzo
- December 1985 – Koto, first release to support the Xerox 1185/1186 workstation, some support for Common Lisp
- June 1987 – Lyric, supports Xerox Common Lisp as part of the standard Lisp sysout
- September 1988 – Medley, for Xerox 1100 and Sun 3 machines
- February 1992 – Medley 2.0, includes CLOS with MOP, runs on various Unix machines, DOS 4.0, and the Xerox 1186
|LISP 1, 1.5, LISP 2(abandoned)|
|Lisp Machine Lisp|
In 1992, an Association for Computing Machinery (ACM) Software System Award recognized the team of Daniel G. Bobrow, Richard R. Burton, L. Peter Deutsch, Ronald Kaplan, Larry Masinter, Warren Teitelman for their pioneering work on Interlisp.
The Medley Interlisp source code has been open-sourced, and a project is now underway to update the language to make it usable on modern hardware.
- "Interlisp Reference Manual, Acknowledgements and Background" (PDF). 1973.
- Teitelman, Warren (April 1972). ""Do What I Mean": the programmer's assistant". Computers and Automation: 8–11.
- Masinter, Larry M. (1981). Interlisp-VAX: A Report (PDF) (Report). Stanford University.
- Teitelman, Warren; Masinter, Larry M. (April 1981). "The Interlisp Programming Environment" (PDF). IEEE Computer. 14 (4): 25–33. doi:10.1109/C-M.1981.220410. S2CID 13447494.
- "Lisp FAQ, Commercial Common Lisp Implementations".
- Warren Teitelman et al., Interlisp Reference Manual (Xerox tech report, 1974)
- J Strother Moore, The Interlisp Virtual Machine Specification (Xerox tech report, 1976)
- L Peter Deutsch, A LISP Machine with Very Compact Programs (Third Joint Conference on Artificial Intelligence, 1973).
- Kaisler, S. H. 1986 Interlisp: the Language and its Usage. Wiley-Interscience.
- Archived Interlisp documentation at bitsavers.org
- LISPF4 an Interlisp interpreter written originally in Fortran by Mats Nordstrom and ported to C (Windows, Mac OS, and Linux) by Blake McBride.
- Interlisp documentation at Computer History Museum.
- AtariAge forum discussion on INTER-LISP/65
- AtariWiki entry for INTER-LISP/65
- Medley Interlisp Project
- Medley Interlisp source code repository