# Lisp-Maschine

Eine Lisp-Maschine (kurz oft LispM) ist ein Computer, dessen Prozessor für die Ausführung von LISP-Programmen optimiert ist und dessen Betriebssystem wie auch typische Anwendungen in LISP geschrieben sind. Lisp-Maschinen boten eine komfortable Integrierte Entwicklungsumgebung. Manche Lisp-Maschinen wurden aber auch ohne Entwicklungsumgebung für die Nutzung von Lisp-Anwendungen eingesetzt. Lisp-Maschinen wurden in den 1970er und 1980er Jahren entworfen, um Aufgaben im Bereich der Künstlichen Intelligenz (KI) besser erledigen zu können. Auch für Animation wurden einige Maschinen benutzt. Die Anzahl der eingesetzten Lisp-Maschinen war sehr gering. Es gibt Schätzungen zwischen 5000 und 7000 Stück.
Trotz dieser geringen Stückzahl wurden einige Konzepte heutiger Computersysteme auf Lisp-Maschinen erprobt und erstmals produktiv eingesetzt, wie farbige Grafik, Fenstersysteme, Computermäuse, Rechnernetze, Hypertext, inkrementelle Kompilierung und das Konzept von Einzelbenutzer-Workstations.
Wegen der großen Fortschritte in der Prozessor-Technologie in den 1990er Jahren, die auch ausreichend schnelle allgemeine Mikroprozessoren ermöglichten, und des KI-Winters stürzten die Lisp-Maschinen-Hersteller in eine Krise und die Produktion von Lisp-Maschinen endete.

## Technische Idee hinter den Lisp-Maschinen

Für Forschungsprojekte zur Künstlichen Intelligenz wurde während der 1960er und 1970er Jahre meistens die Programmiersprache Lisp verwendet. Die verfügbaren Computer waren darauf optimiert, in Assemblersprache oder Fortran erstellte Programme mit möglichst wenig Speicherverbrauch und Rechenzeit zu verarbeiten. Die Ausführung von Lisp-Programmen erforderte dagegen für damalige Verhältnisse erhebliche Ressourcen. Ein Grund dafür waren die komplexer werdenden Lisp-Programme und die großen Datenmengen, die in KI-Anwendungen verarbeitet wurden.
Lisp verwendet dynamische Typisierung und dynamische Speicherverwaltung (Garbage Collection). Die Lisp-Maschinen bieten oftmals generische Operationen. Die Maschinen-Operation + akzeptiert zur Laufzeit beliebige Zahltypen. Der Prozessor ermittelt die Typen der Argumente, überprüft diese auf Anwendbarkeit, führt Konvertierungen durch, wählt die passende Addition aus und wendet diese dann an. Dazu wurden die Datenwörter mit Typ-Informationen versehen (getagged). Die Typ-Überprüfung konnte parallel erfolgen und war wesentlich schneller als eine Software-Implementierung. Typische Wortlängen für Lisp-Maschinen sind 32 Bit (z. B. TI-Explorer-Microprocessor), 36 Bit (Symbolics 3600) oder 40 Bit (Symbolics Ivory). Mit einer Wortlänge von 36 Bit passen auch Daten mit 32 Bit und Tags mit 4 Bit in ein Datenwort.
Außerdem wurde virtueller Speicher eingeführt und die Garbage Collection durch die Hardware unterstützt. In kommerziellen Lisp-Maschinen wurden auch ganze Lisp-Funktionen in Hardware umgesetzt.
Um den Anwendern möglichst viel Rechenleistung zu bieten, wurden Lisp-Maschinen als Einzelplatz-Rechner (mit Unterstützung für Bitmap-Bildschirme, Tastatur, Maus, Netzwerkschnittstelle, Festplatten, Bandlaufwerke und diverse Erweiterungssteckplätze) entworfen. Dies war für die damalige Zeit unüblich, in der Großrechner über Terminals als Mehrbenutzersystem verwendet wurden. Um das gemeinsame Arbeiten von mehreren Benutzern zu ermöglichen, wurden Lisp-Maschinen mit der Fähigkeit entworfen, Rechnernetze zu bilden (zunächst Chaosnet, später auch Ethernet), was für die Zeit ebenfalls unüblich war.
Auch im Bereich Hypertext waren Lisp-Maschinen damals führend. Das Dokumentationssystem des Lisp-Maschinen-Herstellers Symbolics gewann mehrere Auszeichnungen.
Auf Lisp-Maschinen laufen nicht nur Lisp-Programme. Es existieren auch Compiler für beispielsweise C, Pascal, Fortran, Ada und Prolog. Diese Compiler wurden meist auch in Lisp geschrieben und können ebenso interaktiv verwendet werden wie der Lisp-Compiler.

## Geschichte
### Anfänge am MIT AI Lab und bei Xerox

1973 begannen Richard Greenblatt und Tom Knight mit der Entwicklung eines Prototyps für eine Maschine, die Lisp-Code optimiert ausführen sollte. Die erste Maschine, über die Knight seine Masterarbeit schrieb, wurde CONS machine (nach der Lisp-Funktion cons) genannt und 1976 fertiggestellt. Die CONS machine hatte eine 24-Bit-Architektur und benötigte noch eine PDP-10 zum Betrieb. Nach einer Vorstellung der Maschine 1978 bei einer Konferenz über Künstliche Intelligenz begann die DARPA damit, das Projekt zu finanzieren, und Firmen äußerten ihr Interesse am Erwerb einer Lisp-Maschine. Dies führte zur Entwicklung der CADR machine (nach der Lisp-Funktion cadr), von der 25 Stück produziert wurden. Das große Interesse an Lisp-Maschinen führte dazu, dass die Gründung einer Firma für die Vermarktung geplant wurde.
Parallel zur Entwicklung am MIT entwickelte BBN Technologies eine eigene Lisp-Maschine (Jericho), die jedoch nie vermarktet wurde. Das enttäuschte Team wurde dann von Xerox abgeworben und entwickelte am Xerox PARC 1979 eine Lisp-Maschine mit dem Namen Dolphin. Die Xerox-Lisp-Maschinen basierten auf InterLisp, im Gegensatz zu den MIT-Maschinen, die auf Maclisp basierten.

### Kommerzialisierung: Symbolics Inc., Lisp Machines Inc.

1979 kam es zum Streit zwischen Russell Noftsker und Greenblatt über das Geschäftsmodell der Firma. Noftsker wollte eine traditionelle Firma aufbauen, während Greenblatt vor allem ein mit der Hacker-Ethik des MIT AI Labs zu vereinbarendes Geschäftsmodell anstrebte, das auf Risikokapital verzichten sollte. Da Noftsker, der das AI Lab 1973 verlassen hatte, um in der freien Wirtschaft zu arbeiten, bereits Erfahrungen in der kommerziellen Welt hatte und es auch aus anderen Gründen zu Streit zwischen Greenblatt und einigen Mitarbeitern am AI Lab kam, gelang es Noftsker viele Mitarbeiter, unter anderem Thomas Knight, für seine Pläne zu gewinnen und er gründete Symbolics Inc. Greenblatt blieb zunächst passiv und war sehr verärgert über Noftsker. Control Data Corporation (CDC) zeigte jedoch großes Interesse, eine MIT-CADR-Maschine zu erwerben; Alexander Jacobson, ein Consultant von CDC, brachte daher Greenblatt dazu, endlich eine eigene Firma zu gründen, die Lisp Machines Inc. (LMI). 1980/1981 brachte Symbolics die LM-2 auf den Markt, die eine „neuverpackte“ MIT-CADR-Maschine war. LMI brachte ebenfalls eine MIT-CADR-Maschine heraus, die LMI-CADR-Maschine.
Der Konkurrenzkampf zwischen LMI und Symbolics führte dazu, dass die Mitarbeiter beider Firmen das AI Lab verlassen mussten. Nur Richard Stallman und Marvin Minsky blieben zurück. Außerdem hatten LMI und Symbolics ihre Technik und Software zwar vom MIT lizenziert und räumten dafür dem MIT ein Nutzungsrecht ihrer Veränderungen ein, aber Symbolics verweigerte dem MIT die Änderungen in den ursprünglichen Prototyp und die Software zu integrieren, damit LMI diese nicht nutzen konnte. Dies verärgerte Stallman, der dadurch zum Advokaten freier Software wurde. Stallman nutzte den Zugang am MIT zu den Lisp-Maschinen, um die Änderungen zu rekonstruieren und LMI zur Verfügung zu stellen. LMI hielt jedoch eigene Änderungen an der Lisp-Maschine ebenso verschlossen.
LMI lizenzierte ihre Lisp-Maschinen an die Firma Texas Instruments, die mit Explorer I/II auf der LMI Lambda basierende Maschinen produzierte.

### Ende der Lisp-Maschinen

Gegen Ende der 1980er und Anfang der 1990er Jahre brach der ohnehin kleine Markt der Lisp-Maschinen zusammen. LMI war bereits 1986 insolvent und ein Versuch, die Firma als GigaMos Systems wiederzubeleben, scheiterte an juristischen Problemen des Investors. Xerox hatte schon relativ früh die Entwicklung weiterer Lisp-Maschinen gestoppt.
Gründe für den Zusammenbruch gibt es viele. Zum einen war der Markt sehr klein. Spekulationen gehen von zwischen 5000 und 7000 Maschinen aus. Dies sorgte dafür, dass die Hersteller weniger Geld in die technische Weiterentwicklung der Lisp-Maschinen investieren konnten, während die Hersteller herkömmlicher Computer immer bessere Verfahren entwickelten und Lisp-Maschinen bald an Geschwindigkeit einholten und sogar überholten. Firmen wie Lucid Inc. und Franz Inc. begannen, Lisp-Umgebungen für Microcomputer zu verkaufen. Die Portierung der Symbolics-Betriebssystemsoftware Genera von 1992 auf ein DEC Tru64-UNIX/Alpha-System war dreimal so schnell wie die schnellste Lisp-Maschine.
Außerdem erfüllten sich die überzogenen Erwartungen an die Künstliche Intelligenz nicht, weshalb die Gelder für viele KI-Forschungsprojekte gekürzt wurden (der sogenannte KI-Winter). Besonders die massiven Kürzung der Mittel für das SDI-Projekt (auch Star-Wars-Projekt genannt) trafen den Markt hart. Viele KI-Forschungsprojekte (besonders im Bereich Expertensysteme) waren über SDI-Mittel finanziert worden. Damit brach der wichtigste Markt für Lisp-Maschinen ein.

## Hersteller von Lisp-Maschinen

* Symbolics
* Lisp Machines Inc. (LMI)
* Integrated Inference Machines (IIM)
* Texas Instruments
* Fujitsu
* Xerox

## Lisp-Maschinen

Lisp-Maschinen :
| Erscheinungsjahr | Name | Besonderheit |
| 1975/1976 | MIT CONS | erste Lisp-Maschine; 24 Bit Architektur |
| 1977/1978 | MIT CADR | |
| 1979 | Xerox 1100 (Dolphin) | basierend auf dem Xerox Alto |
| 1980/1981 | Symbolics LM-2 | „umverpackte“ MIT CADR |
| 1980/1981 | LMI CADR | „umverpackte“ MIT CADR |
| 1981 | Xerox 1108 (Dandelion) | basierend auf dem Xerox Star |
| 1982 | Symbolics 3600 | mit 36-Bit-Datenwort und 28-Bit-Adressraum; inklusive Macsyma und Prolog |
| 1982 | Xerox 1109 (Dandetiger) | baugleich mit Xerox 1108, aber größerer Speicherausbau |
| 1983 | LMI Lambda | |
| 1983 | Texas Instruments Explorer I | LMI Lambda in Lizenz produziert |
| 1983 | Xerox 1132 (Dorado) | |
| 1984 | Symbolics 3650 | |
| 1985 | Xerox 1185/1186 (Dove/Daybreak) | 1185 nur mit Laufzeitumgebung, 1186 mit kompletter Programmierumgebung |
| 1985 | Lisp-Chip von Texas Instruments | integrierter Mikroprozessor; 32 Bit |
| 1986 | Fujitsu FACOM alpha | Lisp- und Prolog-Koprozessor für Fujitsu-Mainframes; einzige japanische Lisp-Maschine |
| 1986 | LMI K-Machine | komplett neuer Hardware-Entwurf; integrierter Mikroprozessor; konnte wegen Insolvenz LMIs nicht fertiggestellt werden |
| 1986 | Symbolics 3620 | |
| 1986 | IIM | IIM produzierte einige Prototypen |
| 1987 | Symbolics Ivory | integrierter Mikroprozessor; 40 Bit + 8 Bit ECC; Basis für mehrere Lisp-Maschinen |
| 198? | Symbolics XL400 | Ivory-basierte Workstation mit VME-Bus |
| 1987 | Texas Instruments Explorer II | basiert auf dem Lisp-Chip von TI |
| 1988 | Symbolics MacIvory I | NuBus-Einsteckkarte für Apple-Macintosh-Rechner, Ivory-basiert |
| 1988 | Symbolics XL400 | Ivory-basierte Workstation mit VME-Bus |
| 1988 | Texas Instruments MicroExplorer | Nubus-Einsteckkarte für Apple-Macintosh-Rechner, basiert auf dem Lisp-Chip von TI |
| 1989 | Symbolics MacIvory II | Nubus-Einsteckkarte für Apple-Macintosh-Rechner, Ivory-basiert |
| 1989 | Symbolics UX400 | Ivory-basiertes VME-Bus-Koprozessor-Board für SUN-Rechner |
| 1990 | Symbolics XL1200 | Ivory-basierte Workstation mit VME-Bus |
| 1990 | Symbolics UX1200 | Ivory-basierte VME-Bus-Koprozessor-Board für SUN-Rechner |
| 1991 | Symbolics MacIvory III | Nubus-Einsteckkarte für Apple-Macintosh-Rechner, Ivory-basiert |
| 1992 | Symbolics XL1201 | Ivory-basierte Desktop-Workstation mit VME-Bus |
| 1992 | Symbolics NXP1000 | Ivory-basierte Lisp-Maschine ohne eigenes Display |
| 1993 | Symbolics Open Genera | virtuelle Lisp-Maschine für Tru64 UNIX auf DEC Alpha |