
A Knight machine preserved in MIT's
museum.
Lisp machines were general-purpose
computers designed (usually through hardware
support) to efficiently run
Lisp as their main
software language. In a sense, they
were the first commercial single-user
workstations. Despite being modest in
number (perhaps 7,000 units total as of 1988), Lisp machines
commercially pioneered many now-commonplace technologies —
including effective
garbage collection,
laser printing,
windowing systems,
computer mice, high-resolution
bit-mapped graphics, computer graphic
rendering, & networking innovations like
CHAOSNet.
Several companies were building and selling
Lisp Machines in the 1980s: Symbolics
(3600, 3640, XL1200, MacIvory and other models), Lisp Machines Incorporated (LMI Lambda),
Texas
Instruments
(Explorer and MicroExplorer) and Xerox (InterLisp-D
workstations). The operating systems were written in
Lisp Machine Lisp,
InterLisp (Xerox) and later partly in
Common Lisp.
History
Historical context
Artificial intelligence (AI)
computer programs of the 1960s and
1970s intrinsically required what was then considered a huge amount
of computer power, as measured in processor time and memory space.
The power requirements of AI research were exacerbated by the Lisp
symbolic programming language, when commercial hardware was
designed and optimized for
assembly- and
Fortran-like programming languages. At first, the
cost of such computer hardware meant that it had to be shared among
many users. But as
integrated
circuit technology shrank the size and cost of
computers in the 1960s and early 1970s, and the
memory requirements of AI programs started to exceed the
address space of the most common research
computer, the
DEC
PDP-10, researchers considered a new
approach: a computer designed specifically to develop and run large
artificial intelligence
programs, and tailored to the semantics of the
Lisp programming language. To keep the
operating system (relatively)
simple, these machines would not be shared, but would be dedicated
to a single user .
Initial development
In 1973,
Richard Greenblatt
and Thomas Knight,
programmers at MIT's
AI Lab, started what would become the MIT Lisp
Machine Project when they first began building a computer hardwired
to run certain basic Lisp operations, rather than run them in
software, in a 24-bit tagged
architecture. The machine also did incremental (or
"Arena" )
garbage
collecting. More specifically, since Lisp variables are typed
at runtime rather than compile time, a simple addition of two
variables could take five times as long on conventional hardware,
due to test and branch instructions. Lisp Machines ran the tests in
parallel with the more conventional single instruction additions.
If the simultaneous tests failed, then the result was discarded and
recomputed; this meant in many cases a speed increase by several
factors. This simultaneous checking approach was used as well in
testing the bounds of arrays when referenced, and other memory
management necessities (not merely garbage collection or
arrays).
Type checking was further improved and automated when the
conventional byte word of 32-bits was lengthened to 36-bits for
Symbolics 3600-model Lisp machines and
eventually to 40-bits or more (usually, the excess bits not
accounted for by the following were used for
error-correcting codes). The
first group of extra bits were used to hold type data, making the
machine a
tagged architecture,
and the remaining bits were used to implement
CDR coding (wherein the usual linked list
elements are compressed to occupy roughly half the space), aiding
garbage collection by reportedly an order of magnitude. A further
improvement was two microcode instructions which specifically
supported Lisp
functions, reducing the
cost of calling a function to (in some Symbolics implementations)
as little as 20 clock cycles.
The first machine was called the CONS machine (named after the list
construction operator
cons in
Lisp). Often it was affectionately referred to as the "Knight
machine", perhaps since
Knight wrote his
master's thesis on the subject; it was
extremely well-received. It was subsequently improved into a
version called CADR (a pun; in Lisp, the
cadr function, which returns the second pointer
of a cons cell, is pronounced "kay'-der" or "kah'-der", as some
pronounce the word "cadre") which was based on essentially the same
architecture. About 25 of what were essentially prototype CADRs
were sold within and without MIT for ~$50,000; it quickly became
the favorite machine for hacking- many of the most favored software
tools were quickly ported to it (e.g.
Emacs
was ported from
ITS
in 1975). It was so well received at an AI conference held at MIT
in 1978 that
DARPA began
funding its development.
Commercialization of the MIT Lisp Machine technology
In 1979,
Russell Noftsker,
convinced that Lisp machines had a bright future commercially due
to the strength of the Lisp language and the enabling factor of
hardware acceleration, made Greenblatt a proposal: they would take
the technology commercial.
In a counter-intuitive move for an AI Lab
hacker, Greenblatt acquiesced, hoping perhaps that he could
recreate the informal and productive atmosphere of the Lab in a
real business, a bit like Apple Computer
. These ideas and hopes were considerably
different from the ones Noftsker held. The two negotiated at
length, but neither would compromise. As the proposed company could
only be a success with the full and undivided assistance of the AI
Lab hackers as a group, Noftsker and Greenblatt decided that the
fate of the enterprise was up to them, and so the choice should be
left to the hackers.
The ensuing discussions of the choice rent the lab into two
factions. In February, 1979, matters came to a head. The hackers
sided with Noftsker, believing that a commercial venture
fund-backed company had a better chance of surviving and
commercializing Lisp Machines than Greenblatt's proposed
self-sustaining start-up. Greenblatt had lost the battle.
It was at this juncture that
Symbolics,
Noftsker's enterprise, slowly came together. While Noftsker was
paying his staff a salary, he didn't actually have a building or
any equipment for the hackers to work on. He bargained with
Patrick Winston that, in exchange
for allowing Symbolics' staff to keep working out of MIT, Symbolics
would let MIT use internally and freely all the software Symbolics
developed. A consultant from
CDC, who was trying to put together
a natural language computer application with a group of West-coast
programmers, came to Greenblatt, seeking a Lisp machine for his
group to work with, about eight months after the disastrous
conference with Noftsker. Greenblatt had decided to start his own
rival Lisp machine company, but he had done nothing. The
consultant,
Alexander Jacobson,
decided that the only way Greenblatt was going to actually start
his company and build the Lisp machines that Jacobson desperately
needed was if Jacobson pushed and otherwise helped Greenblatt
launch his company. Jacobson pulled together business plans, a
board, a partner for Greenblatt (one
F. Stephen
Wyle). The newfound company was named
LISP Machine,
Inc. (LMI), and was funded by CDC orders, via Jacobson.
Around this time Symbolics (Noftsker's company) began operations —
it had been hindered by Noftsker's promise to give Greenblatt a
year's
head start, and by
severe delays in procuring venture capital. Symbolics still had the
major advantage that while 3 or 4 of the AI Lab hackers had gone to
work for Greenblatt, a solid 14 other hackers had signed onto
Symbolics. There were two AI Lab people who did not get hired by
either:
Richard Stallman and
Marvin Minsky. Stallman, however,
blamed Symbolics for the decline of the hacker community that had
centered around the AI lab. For two years, from 1982 to the end of
1983, Stallman worked by himself to clone the output of the
Symbolics programmers, with the aim of preventing them from gaining
a monopoly on the lab's computers.
Regardless, after a series of internal battles, Symbolics did get
off the ground in 1980/1981, selling the CADR as the LM-2, while
Lisp Machines, Inc. sold it as
the LMI-CADR. Symbolics did not intend to produce many LM-2s, since
the 3600 family of Lisp machines was supposed to ship quickly, but
the 3600s were repeatedly delayed, and Symbolics ended up producing
~100 LM-2s, each of which sold for $70,000. Both companies
developed second-generation products based on the CADR: the
Symbolics 3600 and the LMI-LAMBDA (of
which LMI managed to sell ~200). The 3600, which shipped a year
late, expanded on the CADR by widening the machine word to 36-bits,
expanding the address space to 28-bits, and adding hardware to
accelerate certain common functions that were implemented in
microcode on the CADR. The LMI-LAMBDA, which came out a year after
the 3600, in 1983, was compatible with the CADR (it could run CADR
microcode), but there were hardware differences.
Texas
Instruments
(TI) joined
the fray when it licensed the LMI-LAMBDA design and produced its
own variant, the TI Explorer.
Some of the LMI-LAMBDAs and the TI Explorer were dual systems with
both a Lisp and a
UNIX processor.
Symbolics continued to develop the 3600 family and its operating
system,
Genera, and
produced the Ivory, a
VLSI implementation of the
Symbolics architecture. Starting in 1987, several machines based on
the Ivory processor were developed: boards for Suns and Macs,
stand-alone workstations and even embedded systems (I-Machine
Custom LSI, 32 bit address, Symbolics XL-400, UX-400, MacIvory II;
in 1989 available platforms were Symbolics XL-1200, MacIvory III,
UX-1200, Zora, NXP1000 "pizza box"). Texas Instruments shrunk the
Explorer into silicon as the MicroExplorer which was offered as a
card for the Apple
Mac II. LMI abandoned the
CADR architecture and developed its own K-Machine
[2649], but LMI went bankrupt before the machine could
be brought to market. Prior to its demise, LMI was working on a
distributed system for the LAMBDA using Moby space.
These machines had hardware support for various primitive Lisp
operations (data type testing,
CDR
coding) and also hardware support for incremental
garbage collection.
They ran large Lisp programs very efficiently. The Symbolics
machine was actually competitive against many commercial super mini
computers, but it was never adapted for conventional purposes. The
Symbolics Lisp Machines were also sold to some non-AI markets like
computer graphics, modeling and
animation.
The MIT-derived Lisp machines ran a Lisp dialect called
ZetaLisp, descended from MIT's
Maclisp. The operating systems were written from the
ground up in Lisp, often using object-oriented extensions. Later
these Lisp machines also supported various versions of
Common Lisp (with
Flavors,
New Flavors and
CLOS).
InterLisp, BBN, and Xerox
BBN developed its own Lisp
Machine, called Jericho, which ran a version of
Interlisp. It was never marketed; frustrated, the
entire AI group resigned, and were hired primarily by Xerox.
So,
Xerox PARC
had,
simultaneous with Greenblatt's own development over at MIT,
developed their own Lisp machines which were designed to run
InterLisp (and later Common Lisp). The same hardware was used
with different software also as Smalltalk machines and as an office
system. These included the Xerox 1100, aka "Dolphin" (1979); the
Xerox 1132, aka "Dorado"; the Xerox 1108, aka "Dandelion" (1981);
and the Xerox 1109, aka "Dandetiger"; and the
Xerox 1186/6085, aka "Daybreak".
The Xerox machines
were a commercial failure, but they did influence the creation of
Apple
Computer
's Macintosh. The operating system of
the Xerox Lisp Machines has also been ported to a virtual machine
and is available for several platforms as a product called
"Medley". The Xerox Lisp Machine was well known for its advanced
development environment (
InterLisp-D),
the ROOMS window manager, for its early graphical user interface
and for novel applications like
NoteCards
(one of the first
Hypertext
applications).
Xerox also worked on a RISC-based Lisp Machine using the 'Xerox
Common Lisp Processor' and planned to bring it to market by 1987,
which did not happen.
Integrated Inference Machines
In the mid-80s prototypes of Lisp Machines called Inferstar have
been built by Integrated Inference Machines (IIM).
Developments of Lisp Machines outside the US
A UK company, Racal-Norsk, attempted to repurpose
Norsk Data supermini as microcoded Lisp Machines,
running Symbolics'
ZetaLisp software: the
Knowledge Processing System (KPS).
There were several attempts by Japanese manufacturers to enter the
Lisp Machine market: the
Fujitsu Facom-alpha mainframe co-processor, NTT's Elis,
Toshiba's AI processor (AIP) and NEC's LIME. Several university
research efforts produced working prototypes, among them are Kobe
University's TAKITAC-7, RIKEN's FLATS and Osaka University's
EVLIS.
In France there were two Lisp Machine projects: M3L at Toulouse
Paul Sabatier University and later MAIA.
In Germany the company Siemens designed the RISC-based Lisp
co-processor COLIBRI.
End of the Lisp Machines
With the onset of the "
AI Winter" and the
early beginnings of the "PC revolution" (which would gather steam
and sweep away the minicomputer and workstation manufacturers),
cheaper desktop PCs soon were able to run Lisp programs even faster
than Lisp machines, without the use of special purpose hardware.
Their high profit margin hardware business eliminated, most Lisp
Machine manufacturers went out of business by the early 90s,
leaving only software based companies like
Lucid Inc. or hardware manufacturers who switched
to software and services to avoid the crash. Besides Xerox,
Symbolics is the only Lisp Machine company still operating today,
selling the
Open Genera Lisp Machine
software environment as well as the
Macsyma
computer algebra system.
Legacy
Several attempts to write open-source emulators for various Lisp
Machines have been made: CADR Emulation, Symbolics L Lisp Machine
Emulation, the E3 Project (TI Explorer II Emulation), Meroko (TI
Explorer I) and Nevermore (TI Explorer I). October 3rd 2005 the MIT
released the CADR Lisp Machine source code as open source.
The Bitsavers' PDF Document Archive has PDF versions of the
extensive documentation for the Symbolics Lisp Machines, the TI
Explorer and MicroExplorer Lisp Machines and the Xerox Interlisp-D
Lisp Machines.
Other attempts on language-optimized computers
In the late 90s, there were plans by
Sun Microsystems and other companies to
build language-specific computers for
Java. As a result several
Java processors have been built and
used.
ZetaLisp
ZetaLisp
was the name Symbolics gave to their
dialect of Lisp on their
Lisp Machine models, to distinguish it from the MIT
version,
which was called Lisp Machine
Lisp.
See also
References
- Newquist, HP. The Brain Makers, Sams Publishing, 1994.
ISBN 0-672-30412-0
- "Architecture of the Symbolics 3600", David A.
Moon
- Levy,S: Hackers. Penguin USA, 1984
- Moon 1985
- Moby space Patent application 4779191
- The AAAI-86 Conference Exhibits: New Directions for
Commercial AI, A New Lisp Machine Vendor, AI Magazine Volume 8
Number 1, 1987
- Computer Algebra in Norway, Racal-Norsk KPS-5 and
KPS-10 Multi-User Lisp Machines
- IPSJ Computer Museum, Facom Alpha
- IPSJ Computer Museum, NTT ELIS
- A 32-bit LISP Processor for the Al Workstation ELIS with a
Multiple Programming Paradigm Language, TAO
- Architecture of an AI Processor Chip (IP1704)
- IPSJ Computer Museum, NEC LIME Lisp
Machine
- IPSJ Computer Museum, Kobe University Lisp
Machine
- IPSJ Computer Museum, RIKEN FLATS Numerical
Processing Computer
- IPSJ Computer Museum, EVLIS Machine
- M3L, A Lisp-machine
- MAIA, Machine for Artifical Intelligence
- Müller-Schloer ”Bewertung der RISC-Methodik am Beispiel
COLIBRI”, ”RISC-Architekturen”, Editor A. Bode, BI-Verlag,
1988
- Christian Hafer, Josef Plankl, F. J. Schmitt., COLIBRI: Ein
RISC-LISP-System, Architektur von Rechensystemen, Tagungsband, 11.
ITG/GI-Fachtagung, 7.-9. März 1990, München, Germany 1990
- CADR Emulation
- Symbolics L Lisp Machine Emulation
- The E3 Project, TI Explorer II emulation
- Meroko Emulator (TI Explorer I)
- Nevermore Emulator (TI Explorer I)
- MIT CADR Lisp Machine Source code
- Bitsavers'
PDF Document Archive
- Symbolics documentation
- TI Explorer documentation
- TI MicroExplorer documentation
- Xerox Interlisp documentation
Additional references:
- " LISP Machine Progress Report", Alan Bawden, Richard Greenblatt, Jack Holloway, Thomas Knight, David Moon, Daniel
Weinreb, AI
Lab memos, AI-444, 1977.
- " CADR", Thomas Knight, David A. Moon, Jack Holloway,
Guy L. Steele. AI Lab memos, AIM-528, 1979.
- " Design of LISP-based Processors, or SCHEME: A Dielectric
LISP, or Finite Memories Considered Harmful, or LAMBDA: The
Ultimate Opcode", Guy Lewis
Steele, Gerald Jay Sussman,
AI Lab memo, AIM-514, 1979
- David A. Moon. Chaosnet. A.I. Memo 628, Massachusetts
Institute of Technology Artificial Intelligence Laboratory, June
1981.
- "Implementation of a List Processing Machine". Tom Knight,
Master's thesis.
- Lisp Machine manual, 6th ed. Richard Stallman, Daniel Weinreb, David
Moon. 1984.
External links