Lisp machine

Lisp machines are general-purpose computers designed to efficiently run
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. As integrated circuit technology shrank the size and cost of computers in the 1960s and early 1970s, and the memory needs of AI programs began to exceed the address space of the most common research computer, the Digital Equipment Corporation (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 language. To keep the operating system (relatively) simple, these machines would often not be shared, but would be dedicated to a single user at a time.[citation needed]
Initial development
In 1973,
Type checking was further improved and automated when the conventional byte word of 32 bits was lengthened to 36 bits for
The first machine was called the CONS machine (named after the list construction operator
Commercializing MIT Lisp machine technology
![]() | This section possibly contains original research. (June 2021) |

In 1979, Russell Noftsker, being convinced that Lisp machines had a bright commercial future due to the strength of the Lisp language and the enabling factor of hardware acceleration, proposed to Greenblatt that they commercialize the technology.[citation needed] 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. These ideas and goals were considerably different from those of Noftsker. The two negotiated at length, but neither would compromise. As the proposed firm could succeed only 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 divided 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 firm had a better chance of surviving and commercializing Lisp machines than Greenblatt's proposed self-sustaining start-up. Greenblatt 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 had no 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 firm, but he had done nothing. The consultant, Alexander Jacobson, decided that the only way Greenblatt was going to start the firm and build the Lisp machines that Jacobson desperately needed was if Jacobson pushed and otherwise helped Greenblatt launch the firm. Jacobson pulled together business plans, a board, a partner for Greenblatt (one F. Stephen Wyle). The newfound firm was named LISP Machine, Inc. (LMI), and was funded by CDC orders, via Jacobson.
Around this time Symbolics (Noftsker's firm) began operating. 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, 14 other hackers had signed onto Symbolics. Two AI Lab people were not 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.[4]
Regardless, after a series of internal battles, Symbolics did get off the ground in 1980/1981, selling the CADR as the LM-2, while
Symbolics continued to develop the 3600 family and its operating system,
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 competitive against many commercial super minicomputers, but 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 named
Interlisp, BBN, and Xerox
Xerox also worked on a Lisp machine based on
Integrated Inference Machines
In the mid-1980s, Integrated Inference Machines (IIM) built prototypes of Lisp machines named Inferstar.[11]
Developments of Lisp machines outside the United States
In 1984–85 a UK firm, Racal-Norsk, a joint subsidiary of Racal and Norsk Data, attempted to repurpose Norsk Data's ND-500 supermini as a microcoded Lisp machine, running CADR software: the Knowledge Processing System (KPS).[12]
There were several attempts by Japanese manufacturers to enter the Lisp machine market: the Fujitsu Facom-alpha[13] mainframe co-processor, NTT's Elis,[14][15] Toshiba's AI processor (AIP)[16] and NEC's LIME.[17] Several university research efforts produced working prototypes, among them are Kobe University's TAKITAC-7,[18] RIKEN's FLATS,[19] and Osaka University's EVLIS.[20]
In France, two Lisp Machine projects arose: M3L[21] at Toulouse Paul Sabatier University and later MAIA.[22]
In Germany Siemens designed the RISC-based Lisp co-processor COLIBRI.[23][24][25][26]
End of the Lisp machines
With the onset of the
Legacy
Several attempts to write open-source emulators for various Lisp Machines have been made: CADR Emulation,[29] Symbolics L Lisp Machine Emulation,[30] the E3 Project (TI Explorer II Emulation),[31] Meroko (TI Explorer I),[32] and Nevermore (TI Explorer I).[33] On 3 October 2005, the MIT released the CADR Lisp Machine source code as open source.[34]
In September 2014, Alexander Burger, developer of PicoLisp, announced PilMCU, an implementation of PicoLisp in hardware.[35]
The Bitsavers' PDF Document Archive[36] has PDF versions of the extensive documentation for the Symbolics Lisp Machines,[37] the TI Explorer[38] and MicroExplorer[39] Lisp Machines and the Xerox Interlisp-D Lisp Machines.[40]
Applications
Domains using the Lisp machines were mostly in the wide field of artificial intelligence applications, but also in computer graphics, medical image processing, and many others.
The main commercial expert systems of the 80s were available: Intellicorp's Knowledge Engineering Environment (KEE), Knowledge Craft, from The Carnegie Group Inc., and ART (Automated Reasoning Tool) from Inference Corporation.[41]
Technical overview
Initially the Lisp machines were designed as personal workstations for software development in Lisp. They were used by one person and offered no multi-user mode. The machines provided a large, black and white, bitmap display, keyboard and mouse, network adapter, local hard disks, more than 1 MB RAM, serial interfaces, and a local bus for extension cards. Color graphics cards, tape drives, and laser printers were optional.
The processor did not run Lisp directly, but was a stack machine with instructions optimized for compiled Lisp. The early Lisp machines used microcode to provide the instruction set. For several operations, type checking and dispatching was done in hardware at runtime. For example, only one addition operation could be used with various numeric types (integer, float, rational, and complex numbers). The result was a very compact compiled representation of Lisp code.
The following example uses a function that counts the number of elements of a list for which a predicate returns true
.
(defun example-count (predicate list)
(let ((count 0))
(dolist (i list count)
(when (funcall predicate i)
(incf count)))))
The disassembled machine code for above function (for the Ivory microprocessor from Symbolics):
Command: (disassemble (compile #'example-count))
0 ENTRY: 2 REQUIRED, 0 OPTIONAL ;Creating PREDICATE and LIST
2 PUSH 0 ;Creating COUNT
3 PUSH FP|3 ;LIST
4 PUSH NIL ;Creating I
5 BRANCH 15
6 SET-TO-CDR-PUSH-CAR FP|5
7 SET-SP-TO-ADDRESS-SAVE-TOS SP|-1
10 START-CALL FP|2 ;PREDICATE
11 PUSH FP|6 ;I
12 FINISH-CALL-1-VALUE
13 BRANCH-FALSE 15
14 INCREMENT FP|4 ;COUNT
15 ENDP FP|5
16 BRANCH-FALSE 6
17 SET-SP-TO-ADDRESS SP|-2
20 RETURN-SINGLE-STACK
The operating system used virtual memory to provide a large address space. Memory management was done with garbage collection. All code shared a single address space. All data objects were stored with a tag in memory, so that the type could be determined at runtime. Multiple execution threads were supported and termed processes. All processes ran in the one address space.
All operating system software was written in Lisp. Xerox used Interlisp. Symbolics, LMI, and TI used Lisp Machine Lisp (descendant of MacLisp). With the appearance of Common Lisp, Common Lisp was supported on the Lisp Machines and some system software was ported to Common Lisp or later written in Common Lisp.
Some later Lisp machines (like the TI MicroExplorer, the Symbolics MacIvory or the Symbolics UX400/1200) were no longer complete workstations, but boards designed to be embedded in host computers: Apple Macintosh II and Sun-3 or Sun-4.
Some Lisp machines, such as the Symbolics XL1200, had extensive graphics abilities using special graphics boards. These machines were used in domains like medical image processing, 3D animation, and CAD.
See also
- ICAD – example of knowledge-based engineering software originally developed on a Lisp machine that was useful enough to be then ported via Common Lisp to Unix
- Orphaned technology
References
- ISBN 978-0672304125.
- ^ Target, Sinclair (30 September 2018). "A Short History of Chaosnet". Two-Bit History. Retrieved 6 December 2021.
- S2CID 17431528.
- ^ Levy, S: Hackers. Penguin USA, 1984
- ^ Moon 1985
- ^ K-Machine
- ^ Moby space Archived 25 February 2012 at the Wayback Machine Patent application 4779191
- ^ "Computing Facilities for AI: A Survey of Present and Near-Future Options". AI Magazine. 2 (1). 1981.
- ^ Tello, Ernest R (July 1987). "The Xerox 1186 LISP Machine". Dr. Dobb's Journal. No. 129. pp. 118–125.
The Xerox 1186, nicknamed Daybreak, provides several unique, powerful features at a relatively low cost. [...] The 1186 closely resembles an earlier machine from Xerox—the 1108, or Dandelion.
- ^ "The AAAI-86 Conference Exhibits: New Directions for Commercial AI, VLSI Lisp Machine Implementations Are Coming". AI Magazine. 8 (1). 1987.
- ^ "The AAAI-86 Conference Exhibits: New Directions for Commercial AI, A New Lisp Machine Vendor", AI Magazine, 8 (1), 1987, retrieved 12 November 2011
- )
- ^ "Facom Alpha". Computer Museum. IPSJ. Retrieved 12 November 2011.
- ^ "NTT ELIS". Computer Museum. IPSJ. 9 September 1983. Retrieved 12 November 2011.
- ^ Yasushi, Hibino (25 August 1990). "A 32-bit LISP Processor for the Al Workstation ELIS with a Multiple Programming Paradigm Language, TAO". Journal of Information Processing. 13 (2). NII: 156–164. Retrieved 12 November 2011.
- ^ Mitsuo, Saito (25 August 1990). "Architecture of an AI Processor Chip (IP1704)". Journal of Information Processing. 13 (2). NII: 144–149. Retrieved 12 November 2011.
- ^ "NEC LIME Lisp Machine". Computer Museum. IPSJ. Retrieved 12 November 2011.
- ^ "Kobe University Lisp Machine". Computer Museum. IPSJ. 10 February 1979. Retrieved 12 November 2011.
- ^ "RIKEN FLATS Numerical Processing Computer". Computer Museum. IPSJ. Retrieved 12 November 2011.
- ^ "EVLIS Machine". Computer Museum. IPSJ. Retrieved 12 November 2011.
- ^ "M3L, A Lisp-machine". Limsi. Retrieved 12 November 2011.
- ^ "MAIA, Machine for Artificial Intelligence". Limsi. Retrieved 12 November 2011.
- ISBN 978-1-4613-6671-3
- ^ Müller-Schloer (1988), "Bewertung der RISC-Methodik am Beispiel COLIBRI", in Bode, A (ed.), RISC-Architekturen [Risc architectures] (in German), BI
- ^ Hafer, Christian; Plankl, Josef; Schmitt, FJ (7–9 March 1990), "COLIBRI: Ein RISC-LISP-System" [Colibri: a RISC, Lisp system], Architektur von Rechensystemen, Tagungsband (in German), München, DE: 11. ITG/GI-Fachtagung
- ISBN 978-3-540-18994-7
- ^ "symbolics.txt".
- ^ "A few things I know about LISP Machines".
- ^ "CADR Emulation". Unlambda. Retrieved 12 November 2011.
- ^ "Symbolics L Lisp Machine Emulation". Unlambda. 28 May 2004. Retrieved 12 November 2011.
- ^ "The E3 Project, TI Explorer II emulation". Unlambda. Retrieved 12 November 2011.
- ^ "Meroko Emulator (TI Explorer I)". Unlambda. Retrieved 12 November 2011.
- ^ "Nevermore Emulator (TI Explorer I)". Unlambda. Retrieved 12 November 2011.
- ^ "MIT CADR Lisp Machine Source code". Heeltoe. Retrieved 12 November 2011.
- ^ "Announce: PicoLisp in Hardware (PilMCU)".
- ^ "Bitsavers' PDF Document Archive". Bitsavers. Retrieved 12 November 2011.
- ^ "Symbolics documentation". Bitsavers. Retrieved 12 November 2011.
- ^ "TI Explorer documentation". Bitsavers. 15 May 2003. Retrieved 12 November 2011.
- ^ "TI MicroExplorer documentation". Bitsavers. 9 September 2003. Retrieved 12 November 2011.
- ^ "Xerox Interlisp documentation". Bitsavers. 24 March 2004. Retrieved 12 November 2011.
- ^ Richter, Mark: AI Tools and Techniques. Ablex Publishing Corporation USA, 1988, Chapter 3, An Evaluation of Expert System Development Tools
- General
- "LISP Machine Progress Report", Alan Bawden, AI Labmemos, 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 A. Moon. 1984.
- "Anatomy of a LISP Machine", Paul Graham, AI Expert, December 1988
- Free as in Freedom: Richard Stallman's Crusade for Free Software
External links
- Symbolics website
- Medley
- Bitsavers, PDF documents
- Lisp Machine Manual, Chinual
- Information and code for LMI Lambda and LMI K-Machine
- Jaap Weel's Lisp Machine Webpage at the Wayback Machine (archived 23 June 2015) – A set of links and locally stored documents regarding all manner of Lisp machines
- "A Few Things I Know About LISP Machines" – A set of links, mostly discussion of buying Lisp machines
- Ralf Möller's Symbolics Lisp Machine Museum
- Vintage Computer Festival pictures of some Lisp machines, one running Genera
- LISPMachine.net – Lisp Books and Information
- Lisp machines timeline – a timeline of Symbolics' and others' Lisp machines
- (in French) "Présentation Générale du projet M3L" – An account of French efforts in the same vein
- Discussion
- "If It Works, It's Not AI: A Commercial Look at Artificial Intelligence startups"
- "Symbolics, Inc.: A failure of Heterogenous engineering" – (PDF)
- "My Lisp Experiences and the Development of GNU Emacs" – transcript of a speech Richard Stallman gave about Emacs, Lisp, and Lisp machines