thumb|Maszyna Knighta w Muzeum MIT Lisp-maszyny – komputery ogólnego przeznaczenia, zaprojektowane ze sprzętowym wsparciem dla Lispu jako głównego języka programowania. Stanowią przykład architektury komputerowej dla języka wysokiego poziomu. Były jednymi z pierwszych komercyjnych jednoużytkownikowych stacji roboczych. Pomimo niewielkiej liczby egzemplarzy (około według stanu na dzień 1988 rokuNewquist, HP. The Brain Makers, Sams Publishing, 1994. .), Lisp-maszyny były pionierem wielu popularnych technologii – w tym odśmiecania pamięci, drukowania laserowego, systemu okienkowego, komputerowej myszy, grafiki rastrowej o wysokiej rozdzielczości, renderowania grafiki komputerowej, sieci komputerowych (np. Chaosnet). Następujące firmy budowały i sprzedawały Lisp-maszyny w latach 80.: Symbolics (3600, 3640, XL1200, MacIvory, i inne modele), Lisp Machines Incorporated (LMI Lambda), Texas Instruments (Explorer i MicroExplorer), Xerox (stacje robocze Interlisp-D). Systemy operacyjne dla Lisp-maszyn zostały napisane w języku Lisp Machine Lisp, InterLisp (Xerox), a później częściowo w Common Lispie.

Historia Kontekst historyczny W latach 60. i 70. XX wieku, implementacje algorytmów sztucznej inteligencji wymagały olbrzymiej jak na tamte czasy mocy obliczeniowej. Programy sztucznej inteligencji zazwyczaj pisano w języku Lisp, co dodatkowo obniżało ich wydajność, ponieważ większość istniejącego sprzętu była zoptymalizowana pod kątem użycia asemblera lub języków typu Fortran. Z początku, ze względu na wysokie koszty, komputery były dzielone przez wielu użytkowników. Wraz z upowszechnieniem się układów scalonych w latach 60. i 70., ceny komputerów obniżyły się. W tym samym okresie, programy sztucznej inteligencji przestały mieścić się w przestrzeni adresowej najpopularniejszych komputerów, takich jak: DEC PDP-10. Rozważono wtedy nowe podejście: komputer zaprojektowany w celu uruchamiania na nim programów sztucznej inteligencji, zużywających dużo zasobów, dostosowany do semantyki języka programowania Lisp. Aby kod systemu operacyjnego tego komputera nie był zbyt skomplikowany, celowo pominięto możliwość współdzielenia przez wielu użytkowników.

Początkowy rozwój thumb|160px|Lisp-maszyna firmy Symbolics (model 3640) W 1973 roku, programiści MIT AI Lab, Richard Greenblatt i Thomas Knight, rozpoczęli pracę nad budową sprzętu do uruchamiania wybranych podstawowych operacji języka Lisp na 24-bitowej architekturze tagowanej. Sprzęt ten miał wbudowane inkrementalne odśmiecanie pamięci. Te prace stanowiły bazę dla projektu budowy Lisp-maszyny, MIT Lisp Machine Project. Ponieważ typowanie zmiennych w języku Lisp odbywa się w trakcie działania programu, a nie podczas kompilacji, proste operacje, takie jak dodawanie dwóch zmiennych, mogły trwać do pięciu razy dłużej na typowym sprzęcie z powodu instrukcji testowania i skoku. Lisp-maszyna uruchamiała instrukcje testujące równocześnie z instrukcją dodawania. Jeśli instrukcje testujące zwróciły błąd, wynik dodawania był pomijany, a działanie obliczane ponownie. W ten sposób przyspieszono kilkukrotnie przeciętny czas wykonania operacji. Takie podejście zastosowano również w zarządzaniu pamięcią operacyjną.

Typowanie poprawiono i zautomatyzowano w Lisp-maszynie Symbolics, model 3600, kiedy zamiast 32-bitowych słów maszynowych użyto 36-bitowych, a później 40-bitowych lub dłuższych. Spośród dodatkowych bitów, początkowe oznaczały typ zmiennej, a pozostałe bity były użyte do kodowania CDR, wspomagającego odśmiecanie pamięci, co przyspieszało odśmiecanie o rząd wielkości. Kolejne poprawki dotyczyły wprowadzenia dwóch dodatkowych instrukcji mikrokodu, które wspomagały wywołanie funkcji Lispu, skracając czas ich wywołania (w niektórych implementacjach Symbolics) nawet do 20 cyklów zegara.

Pierwsza z Lisp-maszyn, CONS, swoją nazwę zawdzięcza operatorowi tworzenia listy w języku Lisp. Nazywa się ją również pieszczotliwie „Maszyną Knighta”, ponieważ była ona tematem jego dobrze przyjętej w środowisku pracy magisterskiej. Była ona stopniowo ulepszana, a następną jej wersję opartą na tej samej architekturze nazwano CADR (nazwa pochodzi od funkcji Lisp zwracającej drugi element z listy). Około 25 prototypowych komputerów CADR sprzedano zarówno na uczelni, jak i poza nią w cenie ok. dolarów za sztukę. Bardzo szybko stała się ulubionym komputerem społeczności hakerskiej – wiele spośród najpopularniejszych narzędzi oprogramowania zostało przeniesionych na CADR (na przykład w 1975 zaadaptowano edytor tekstu Emacs). Na konferencji sztucznej inteligencji odbywającej się 1978 roku na MIT Lisp-maszyna została doceniona przez uczestniczących i w efekcie DARPA zaczęła sponsorować jej rozwój.

Komercjalizacja technologii MIT Lisp Machine W 1979 roku Russel Noftsker, w przekonaniu że Lisp-maszyna ma szansę na sukces komercyjny, ze względu na moc języka Lisp oraz jego wsparcie sprzętowe, zaproponował Greenblattowi, żeby skomercjalizować tę technologię. Greenblatt zgodził się, prawdopodobnie mając nadzieję, że uda się odtworzyć w firmie nieformalną, produktywną atmosferę panującą w AI Lab. Ten cel był jednak obcy Noftskerowi. Pomimo długich i trudnych negocjacji, nie udało się dojść do kompromisu. Ponieważ sukces firmy zależał całkowicie od pełnego zaangażowania całej grupy hakerów z AI Lab, Notfsker i Greenblatt zdecydowali, że to właśnie im powierzona będzie decyzja, od której zależą losy przedsiębiorstwa.

Dyskusje nad wyborem podzieliły lab na dwie frakcje. W lutym 1979 spór zakończono. Hackerzy opowiedzieli się po stronie Noftskera, uznając, że ze wsparciem inwestorów komercjalizacja Lisp-maszyn ma większe szanse powodzenia niż zaproponowany przez Greenblatta samowystarczalny start up.

W ten sposób powoli powstawała firma Symbolics. Chociaż Noftsker wypłacał pensję programistom, nie miał ani biura, ani sprzętu do pracy. Umówił się z Patrickiem Winstonem, że w zamian za pozwolenie programistom z Symbolics na pracę w laboratorium MIT, laboratorium będzie mogło korzystać na własny użytek w sposób nieograniczony z oprogramowania Symbolics. W tym samym czasie w celu zamówienia egzemplarza Lisp-maszyny z Greenblattem skontaktował się konsultant firmy CDC, Alexander Jacobson, który wraz z grupą programistów z zachodniego wybrzeża pracował nad rozwojem aplikacji dla języka naturalnego. Greenblatt już wcześniej chciał założyć własną, konkurencyjną firmę produkująca Lisp-maszyny, ale nie wykonał żadnych kroków w celu urzeczywistnienia swoich planów. Żeby otrzymać Lisp-maszyny, których firma CDC potrzebowała, Jacobson zdecydował się pomóc Greenblattowi w stworzeniu własnej firmy. Przygotował kosztorys, plan, załogę i znalazł partnera dla Greenblatta. Nowo założona firma nazywała się LISP Machine, Inc (LMI).

W tym samym czasie firma Noftskera, Symbolics, zaczęła swoje działanie – było to utrudnione przez obietnicę daną Greenblattowi, że firma Noftskera wstrzyma się przez rok z udostępnianiem swoich produktów, oraz przez problemy z zebraniem kapitału od inwesotrów. Mimo to, Symbolics miała ciągle znaczącą przewagę w postaci 14 hakerów z AI Lab, którzy w niej pracowali, w przeciwieństwie do 3 lub 4 którzy dołączyli do firmy Greenblatta. Tylko dwoje hackerów z AI Lab nie dołączyło do żadnej z tych grup: Richard Stallman i Marvin Minski. Stallman oskarżał Symbolics za upadek kultury hakerskiej w AI Lab. Przez dwa lata, od 1982 roku aż do końca 1983, Stallman samodzielnie reimplementował programy Symbolics, żeby zapobiec monopolowi Symbolics na oprogramowanie komputerów w labie MITLevy,S: Hackers. Penguin USA, 1984..

Po serii wewnętrznych tarć, w latach 1980/1981 Symbolics zaczęła sprzedaż CADR jako LM-2, podczas gdy Lisp Machines, Inc. sprzedawała ją jako LMI-CADR. Symbolics nie zamierzała produkować wielu egzemplarzy LM-2, ponieważ wkrótce zamierzano wprowadzić nowe modele Lisp-maszyn 3600. Jednak prace nad nimi wielokrotnie się opóźniały, w związku z czym Symbolics wyprodukowała około 100 sztuk LM-2, z czego każda sprzedała się po cenie ok. USD. Obie firmy wyprodukowały produkty drugiej generacji w oparciu o CADR: Symbolics 3600 oraz LMI-LAMBDA (LMI sprzedała ich około 200). W model 3600, który pojawił się z rocznym opóźnieniem, dokonano następujących zmian: wprowadzono 36-bitowe słowo maszynowe oraz powiększono przestrzeń adresową do 28-bitówMoon 1985., dodano wsparcie sprzętowe dla funkcji, które były zaimplementowane w mikrokodzie na maszynie CADR. LMI-LAMBDA, który pojawił się rok po 3600, w 1983, było wstecznie kompatybilne z CADR, ale różnił się sprzętowo. Texas Instruments dołączył do konkurencji, również produkując swój wariant LMI-LAMBDA, zwany TI Explorer. LMI-LAMBDA i TI Explorer były podwójnymi systemami posiadającymi zarówno procesor Lisp, jak i UNIX. TI również zaprojektował 32-bitową mikroprocesorową wersję TI Explorera. Ta 32-bitowa wersja była również używana w MicroExplorerze – płytce NuBus dla Apple Macintosh.

Symbolics kontynuowało rozwój rodziny 3600 i systemu operacyjnego dla nich, Genera, i wyprodukowało Ivory – implementację architektury Symbolics jako VLSI. Począwszy od 1987, wyprodukowano następujące komputery w oparciu o Ivory: płytki dla komputerów Sun i Mac, samodzielne stacje robocze i nawet systemy wbudowane (I-Machine Custom LSI, 32 bit address, Symbolics XL-400, UX-400, MacIvory II; w 1989 dostępnymi platformami były Symbolics XL-1200, MacIvory III, UX-1200, Zora, NXP1000 „pizza box”). Texas Instruments zmniejszył Explorera do MicroExplorera, który był dostępny do komputerów Apple Mac II jako karta rozszerzeń. LMI porzuciło architekturę CADR i zaczęło rozwijać własną K-Machine, ale firma zbankrutowała zanim skończono pracę nad tym projektem. Zanim jednak to się stało, pracowano tam również nad systemem rozproszonym dla LAMDA przy użyciu Moby spaceMoby space Patent application 4779191..

Wspomniane komputery miały wsparcie sprzętowe dla różnych pierwotnych operacji języka Lisp (testowanie typu danych, kodowanie CDR), a także miały wsparcie sprzętowe dla odśmiecania pamięci, co znacząco zwiększało wydajność wykonywanych programów. Lisp-maszyny marki Symbolics były konkurencyjne w stosunku do komercyjnych super mini komputerów, ale nigdy nie zaadaptowano ich do konwencjonalnych celów. Symbolics Lisp Machines sprzedawano także do innych zastosowań, takich jak grafika komputerowa, modelowanie lub animacje.

Lisp-maszyny z AI labu uruchamiały programy napisane w dialekcie języka Lisp – Lisp Machine Lisp, pochodzący od MIT Maclisp. System operacyjny był w całości napisany w Lispie, przy użyciu obiektowych rozszerzeń tego języka. Później te komputery także wspierały różne wersje języka Common Lisp.

InterLisp, BBN i Xerox BBN rozwijał własny typ Lisp-maszyn, zwany Jericho, na którym uruchamiano jedną z wersji Interlispu. Ten projekt nigdy nie został wprowadzony na rynek. Sfrustrowana tym faktem grupa programistów AI odeszła z BBN. Zatrudniła ich firma Xerox. W ten sposób Xerox Palo Ato Research Center rozwijała, równolegle do projektu Greenblatta, Lisp-maszyny, które były zaprojektowane do uruchamiania InterLispu (a w późniejszym okresie Common Lispu). Na tym samym sprzędzie działały także maszyny Smalltalka i Xerox Star. Włączając Xerox 1100, „Dolphin” (1979); Xerox 1132, „Dorado”; Xerox 1108, „Dandelion” (1981); Xerox 1109, „Dandetiger”; i Xerox 1186/6085, „Daybreak”. Komputery Xerox okazały się fiaskiem, ale wpłynęły na stworzenie komputera Apple, Macintosha. System operacyjny maszyn Xerox Lisp został także przepisany na maszyny wirtualne i jest dostępny na kilka platform jako „Medley”. Xerox Lisp Machine była dobrze znana z jej zaawansowanego środowiska programowania (InterLisp-D), menadżera okien ROOMS i z ich wczesnego graficznego interfejsu użytkownika i aplikacji takich jak NoteCards (jedną z pierwszych aplikacji hipertekstowych).

Xerox także pracował nad Lisp-maszynach o architekturze RISC z użyciem „Xerox Common Lisp Processor” i planował także rozpocząć jego dystrybucję w 1987, co jednak nie nastąpiło.