Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Lisp machine
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Computer specialized in running Lisp}} {{about |the type of computer|the company|Lisp Machines}} {{Use dmy dates|date=July 2020}} [[File:LISP machine.jpg|thumb|A Knight machine preserved in the [[MIT Museum]]]] '''Lisp machines''' are general-purpose computers designed to efficiently run [[Lisp (programming language)|Lisp]] as their main software and [[programming language]], usually via hardware support. They are an example of a [[high-level language computer architecture]]. In a sense, they were the first commercial single-user [[workstation]]s. Despite being modest in number (perhaps 7,000 units total as of 1988<ref>{{Cite book |last=Newquist |first=H.P. |date=1 March 1994 |title=The Brain Makers |publisher=Sams Publishing |isbn=978-0672304125}}</ref>) Lisp machines commercially pioneered many now-commonplace technologies, including [[windowing system]]s, [[Mouse (computing)|computer mice]], high-resolution bit-mapped [[raster graphics]], computer graphic rendering, [[laser printing]], networking innovations such as [[Chaosnet]], and effective [[Garbage collection (computer science)|garbage collection]].<ref>{{cite web |last=Target |first=Sinclair |date=30 September 2018 |url=https://twobithistory.org/2018/09/30/chaosnet.html |title=A Short History of Chaosnet |website=Two-Bit History |access-date=6 December 2021}}</ref> Several firms built and sold Lisp machines in the 1980s: [[Symbolics]] (3600, 3640, XL1200, MacIvory, and other models), [[Lisp Machines]] Incorporated (LMI Lambda), [[Texas Instruments]] ([[TI Explorer|Explorer, MicroExplorer]]), and [[Xerox]] ([[Interlisp]]-D workstations). The operating systems were written in [[Lisp Machine Lisp]], Interlisp (Xerox), and later partly in [[Common Lisp]]. [[File:Symbolics3640 Modified.JPG|thumb|right|Symbolics 3640 Lisp machine]] ==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 language|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 (programming language)|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|date=October 2009}} ===Initial development=== In 1973, [[Richard Greenblatt (programmer)|Richard Greenblatt]] and [[Tom Knight (scientist)|Thomas Knight]],<!-- I can't seem to get it straight which of the two had primacy in development here. To be safe, I include both, since both seem to have done substantial work regardless of primacy. --> programmers at [[Massachusetts Institute of Technology]] (MIT) [[MIT Artificial Intelligence Laboratory|Artificial Intelligence Laboratory]] (AI Lab), began 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 collection (computer science)|garbage collection]].{{citation needed|date=May 2013}} 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<ref>{{cite journal |title=Architecture of the Symbolics 3600 |journal=ACM SIGARCH Computer Architecture News |volume=13 |issue=3| pages=76–83 |first=David A. |last=Moon |author-link=David A. Moon |doi=10.1145/327070.327133 |publisher=Portal.acm.org |year=1985 |s2cid=17431528}}</ref> and eventually to 40 bits or more (usually, the excess bits not accounted for by the following were used for [[error correction and detection|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 [[subroutine|functions]], reducing the cost of calling a function to as little as 20 clock cycles, in some Symbolics implementations. The first machine was called the CONS machine (named after the list construction operator <code>[[cons]]</code> in Lisp). Often it was affectionately referred to as the ''Knight machine'', perhaps since [[Tom Knight (scientist)|Knight]] wrote his master's thesis on the subject; it was extremely well received.{{Citation needed|date=March 2007}} It was subsequently improved into a version called CADR (a pun; in Lisp, the <code>[[cAR and CDR|cadr]]</code> function, which returns the second item of a list, is pronounced {{IPA|/ˈkeɪ.dəɹ/}} or {{IPA|/ˈkɑ.dəɹ/}}, 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{{snd}} many of the most favored software tools were quickly ported to it (e.g. [[Emacs]] was ported from [[Incompatible Timesharing System|ITS]] in 1975{{Disputed inline|date=March 2019}}). It was so well received at an AI conference held at MIT in 1978 that [[Defense Advanced Research Projects Agency]] (DARPA) began funding its development. ===Commercializing MIT Lisp machine technology=== {{original research|section|date=June 2021}} [[File:Lisp machines in Computer History Museum.jpg|thumb|Symbolics 3620 (left) and LMI Lambda Lisp machines]] 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|date= October 2009}} 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 [[Control Data Corporation|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 (positioning)|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.<ref>Levy, S: ''Hackers''. Penguin USA, 1984</ref> 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 firms 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,<ref>Moon 1985</ref> 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 hardware differences existed. [[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. TI also developed a 32-bit [[microprocessor]] version of its Lisp CPU for the TI Explorer. This Lisp chip also was used for the MicroExplorer – a [[NuBus]] board for the Apple [[Macintosh II]] (NuBus was initially developed at MIT for use in Lisp machines). Symbolics continued to develop the 3600 family and its operating system, [[Genera (operating system)|Genera]], and produced the Ivory, a [[very-large-scale integration|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 shrank 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,<ref name= "K-Machine">{{citation |url= http://home.comcast.net/%7Eprunesquallor/kmachine.htm |title= K-Machine}}</ref> but LMI went bankrupt before the machine could be brought to market. Before its demise, LMI was working on a distributed system for the LAMBDA using Moby space.<ref>[http://www.patentgenius.com/patent/4779191.html Moby space] {{Webarchive|url=https://web.archive.org/web/20120225075453/http://www.patentgenius.com/patent/4779191.html |date=25 February 2012 }} Patent application 4779191</ref> These machines had hardware support for various primitive Lisp operations (data type testing, [[CDR coding]]) and also hardware support for incremental [[garbage collection (computer science)|garbage collection]]. They ran large Lisp programs very efficiently. The Symbolics machine was competitive against many commercial super [[minicomputer]]s, 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 [[Lisp Machine Lisp]], 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 (programming language)|Flavors]], [[New Flavors]], and [[Common Lisp Object System]] (CLOS)). ===Interlisp, BBN, and Xerox=== {{anchor|Xerox}} [[Bolt, Beranek and Newman]] (BBN) developed its own Lisp machine, named Jericho,<ref>{{cite journal|url=http://www.aaai.org/ojs/index.php/aimagazine/article/download/94/93|year=1981|title=Computing Facilities for AI: A Survey of Present and Near-Future Options|journal=AI Magazine|volume=2|issue=1}}</ref> which ran a version of [[Interlisp]]. It was never marketed. Frustrated, the whole AI group resigned, and were hired mostly by Xerox. So, [[Xerox]] [[Xerox PARC|Palo Alto Research Center]] had, simultaneously with Greenblatt's own development 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 the [[Xerox Star]] office system. These included the Xerox 1100, ''Dolphin'' (1979); the Xerox 1132, ''Dorado''; the Xerox 1108, ''Dandelion'' (1981); the Xerox 1109, ''Dandetiger''; and the [[Xerox Daybreak|Xerox 1186/6085]], ''Daybreak''.<ref>{{cite magazine|magazine=Dr. Dobb's Journal |date=July 1987 |title=The Xerox 1186 LISP Machine |pages=118–125 |first=Ernest R |last=Tello |url=https://archive.org/details/1987-08-dr-dobbs-journal/page/118/mode/1up |issue=129|quote=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.}}</ref> 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 named ''Medley''. The Xerox 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 Lisp machine based on [[reduced instruction set computing]] (RISC), using the 'Xerox Common Lisp Processor' and planned to bring it to market by 1987,<ref>{{cite journal|year=1987|title=The AAAI-86 Conference Exhibits: New Directions for Commercial AI, VLSI Lisp Machine Implementations Are Coming|journal=AI Magazine|volume=8|issue=1|url=http://www.aaai.org/ojs/index.php/aimagazine/article/download/94/93}}</ref> which did not occur. ===Integrated Inference Machines=== In the mid-1980s, Integrated Inference Machines (IIM) built prototypes of Lisp machines named Inferstar.<ref>{{Citation |url= http://www.aaai.org/ojs/index.php/aimagazine/article/download/94/93 |title= The AAAI-86 Conference Exhibits: New Directions for Commercial AI, A New Lisp Machine Vendor |journal= AI Magazine |volume= 8 |number= 1 |year= 1987 |access-date=12 November 2011}}</ref> ===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).<ref>{{cite journal |title= Computer Algebra in Norway, Racal-Norsk KPS-5 and KPS-10 Multi-User Lisp Machines |publisher=Springer link |doi= 10.1007/3-540-15984-3_297 }}</ref> There were several attempts by Japanese manufacturers to enter the Lisp machine market: the [[Fujitsu]] [[Facom-alpha]]<ref>{{cite web |url= http://museum.ipsj.or.jp/en/computer/other/0006.html |work= Computer Museum |title= Facom Alpha |publisher= IPSJ |access-date= 12 November 2011}}</ref> mainframe co-processor, NTT's Elis,<ref>{{cite web|url= http://museum.ipsj.or.jp/en/computer/other/0004.html |publisher= IPSJ |work= Computer Museum |title= NTT ELIS |date=9 September 1983 |access-date=12 November 2011}}</ref><ref>{{cite journal|url=http://ci.nii.ac.jp/naid/110002673521/en |title= A 32-bit LISP Processor for the Al Workstation ELIS with a Multiple Programming Paradigm Language, TAO |journal= Journal of Information Processing |publisher= NII |date= 25 August 1990 |volume= 13 |issue= 2 |pages= 156–164 |access-date=12 November 2011|last1= Yasushi |first1= Hibino }}</ref> Toshiba's AI processor (AIP)<ref>{{cite journal|url= http://ci.nii.ac.jp/naid/110002673519 |title= Architecture of an AI Processor Chip (IP1704) |journal= Journal of Information Processing |publisher= NII |date=25 August 1990 |volume= 13 |issue= 2 |pages= 144–149 |access-date= 12 November 2011|last1= Mitsuo |first1= Saito }}</ref> and NEC's LIME.<ref>{{cite web|url= http://museum.ipsj.or.jp/en/computer/other/0008.html |publisher= IPSJ |work= Computer Museum |title= NEC LIME Lisp Machine |access-date= 12 November 2011}}</ref> Several university research efforts produced working prototypes, among them are Kobe University's TAKITAC-7,<ref>{{cite web |url= http://museum.ipsj.or.jp/en/computer/other/0001.html |publisher= IPSJ |work= Computer Museum |title= Kobe University Lisp Machine |date= 10 February 1979 |access-date= 12 November 2011}}</ref> RIKEN's FLATS,<ref>{{cite web |url= http://museum.ipsj.or.jp/en/computer/other/0005.html |publisher= IPSJ |work= Computer Museum |title= RIKEN FLATS Numerical Processing Computer |access-date=12 November 2011}}</ref> and Osaka University's EVLIS.<ref>{{cite web|url= http://museum.ipsj.or.jp/en/computer/other/0003.html |publisher= IPSJ |work= Computer Museum |title= EVLIS Machine |access-date=12 November 2011}}</ref> In France, two Lisp Machine projects arose: M3L<ref>{{cite web |url= http://www.limsi.fr/~jps/actions/m3l/m3l.htm |title= M3L, A Lisp-machine |publisher= Limsi |access-date= 12 November 2011}}</ref> at Toulouse Paul Sabatier University and later MAIA.<ref>{{cite web |url= http://www.limsi.fr/~jps/actions/maia/maia.htm |title= MAIA, Machine for Artificial Intelligence |publisher=Limsi |access-date= 12 November 2011}}</ref> In Germany Siemens designed the RISC-based Lisp co-processor COLIBRI.<ref>{{Citation |first1= Christian |last1= Hafer |first2= Josef |last2= Plankl |first3= Franz Josef |last3= Schmidt | title= COLIBRI: A Coprocessor for LISP based on RISC |language= en |journal= VLSI for Artificial Intelligence and Neural Networks |publisher= Springer |date= 1991 |pages= 47–56 |doi= 10.1007/978-1-4615-3752-6_5 |isbn= 978-1-4613-6671-3 |place= Boston, MA}}</ref><ref>{{Citation |last= Müller-Schloer |contribution= Bewertung der RISC-Methodik am Beispiel COLIBRI |language= de |title= RISC-Architekturen |editor-first= A |editor-last= Bode |trans-title=Risc architectures |publisher= BI |year= 1988}}</ref><ref>{{Citation |first1= Christian |last1= Hafer |first2= Josef |last2= Plankl |first3= FJ |last3= Schmitt |trans-title=Colibri: a RISC, Lisp system |title= COLIBRI: Ein RISC-LISP-System |language= de |journal= Architektur von Rechensystemen, Tagungsband |publisher= 11. ITG/GI-Fachtagung |date= 7–9 Mar 1990 |place= München, [[Germany|DE]]}}</ref><ref>{{Citation |first1= Christian |last1= Legutko |first2= Eberhard |last2= Schäfer |first3= Jürgen |last3= Tappe |trans-title=The instruction pipeline of the Colibri system |title= Die Befehlspipeline des Colibri-Systems |language= de |journal= Architektur und Betrieb von Rechensystemen, Tagungsband |series= Informatik-Fachberichte |publisher= 10. ITG/GI-Fachtagung |date= 9–11 Mar 1988 |volume= 168 |pages= 142–151 |doi= 10.1007/978-3-642-73451-9_12 |isbn= 978-3-540-18994-7 |place= Paderborn, [[Germany|DE]]}}</ref> ===End of the Lisp machines=== With the onset of an ''[[AI winter]]'' and the early beginnings of the [[microcomputer revolution]], which would sweep away the minicomputer and workstation makers, cheaper desktop PCs soon could run Lisp programs even faster than Lisp machines, with no use of special purpose hardware. Their high profit margin hardware business eliminated, most Lisp machine makers had gone out of business by the early 90s, leaving only software based firms like [[Lucid Inc.]] or hardware makers who had switched to software and services to avoid the crash. {{As of |2015|1}}, besides Xerox and TI, Symbolics is the only Lisp machine firm still operating, selling the [[Open Genera]] Lisp machine software environment and the [[Macsyma]] computer algebra system.<ref>{{cite web|url=http://www.lispmachine.net/symbolics.txt|title=symbolics.txt}}</ref><ref>{{cite web|url=http://fare.tunes.org/LispM.html|title=A few things I know about LISP Machines}}</ref> ===Legacy=== Several attempts to write open-source emulators for various Lisp Machines have been made: CADR Emulation,<ref>{{cite web|url= http://www.unlambda.com/cadr/ |title=CADR Emulation |publisher=Unlambda |access-date= 12 November 2011}}</ref> Symbolics L Lisp Machine Emulation,<ref>{{cite web|url=http://www.unlambda.com/l-machine/ |title= Symbolics L Lisp Machine Emulation |publisher= Unlambda |date= 28 May 2004 |access-date= 12 November 2011}}</ref> the E3 Project (TI Explorer II Emulation),<ref>{{cite web|url= http://www.unlambda.com/lisp/e3.page |title=The E3 Project, TI Explorer II emulation |publisher= Unlambda |access-date= 12 November 2011}}</ref> Meroko (TI Explorer I),<ref>{{cite web|url= http://www.unlambda.com/lisp/meroko.page |title= Meroko Emulator (TI Explorer I) |publisher= Unlambda |access-date= 12 November 2011}}</ref> and Nevermore (TI Explorer I).<ref>{{cite web|url= http://www.unlambda.com/lisp/nevermore.page |title=Nevermore Emulator (TI Explorer I) |publisher= Unlambda |access-date= 12 November 2011}}</ref> On 3 October 2005, the MIT released the CADR Lisp Machine source code as open source.<ref>{{cite web|url= http://www.heeltoe.com/retro/mit/mit_cadr_lmss.html |title= MIT CADR Lisp Machine Source code |publisher=Heeltoe |access-date=12 November 2011}}</ref> In September 2014, Alexander Burger, developer of [[PicoLisp]], announced PilMCU, an implementation of PicoLisp in hardware.<ref>{{cite web|url=http://www.mail-archive.com/picolisp@software-lab.de/msg04823.html|title=Announce: PicoLisp in Hardware (PilMCU)}}</ref> The Bitsavers' PDF Document Archive<ref>{{cite web|url= http://www.bitsavers.org/ |title= Bitsavers' PDF Document Archive |publisher= Bitsavers |access-date=12 November 2011}}</ref> has PDF versions of the extensive documentation for the Symbolics Lisp Machines,<ref>{{cite web |url= http://www.bitsavers.org/pdf/symbolics/ |title=Symbolics documentation |publisher=Bitsavers |access-date= 12 November 2011}}</ref> the TI Explorer<ref>{{cite web |url= http://www.bitsavers.org/pdf/ti/explorer/ |title=TI Explorer documentation |publisher= Bitsavers |date= 15 May 2003 |access-date= 12 November 2011}}</ref> and MicroExplorer<ref>{{cite web |url=http://www.bitsavers.org/pdf/ti/microexplorer/ |title= TI MicroExplorer documentation |publisher=Bitsavers |date=9 September 2003 |access-date= 12 November 2011}}</ref> Lisp Machines and the Xerox Interlisp-D Lisp Machines.<ref>{{cite web|url= http://www.bitsavers.org/pdf/xerox/interlisp |title=Xerox Interlisp documentation |publisher= Bitsavers |date= 24 March 2004 |access-date= 12 November 2011}}</ref> ===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.<ref>Richter, Mark: ''AI Tools and Techniques''. Ablex Publishing Corporation USA, 1988, Chapter 3, An Evaluation of Expert System Development Tools</ref> ==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 <code>true</code>. <syntaxhighlight lang="lisp"> (defun example-count (predicate list) (let ((count 0)) (dolist (i list count) (when (funcall predicate i) (incf count))))) </syntaxhighlight> The disassembled machine code for above function (for the Ivory microprocessor from Symbolics): <syntaxhighlight lang="nasm"> 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 </syntaxhighlight> The operating system used [[virtual memory]] to provide a large address space. Memory management was done with garbage collection. All code [[ single address space operating system | 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 (software)|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== {{Reflist|30em}} ; General {{refbegin|colwidth=30em}} *"[https://dspace.mit.edu/handle/1721.1/5751 LISP Machine Progress Report]", Alan Bawden, [[Richard Greenblatt (programmer)|Richard Greenblatt]], Jack Holloway, [[Tom Knight (scientist)|Thomas Knight]], [[David A. Moon]], [[Daniel Weinreb]], [[MIT Artificial Intelligence Laboratory|AI Lab]] memos, AI-444, 1977. *"[http://hdl.handle.net/1721.1/5718 CADR]", Thomas Knight, David A. Moon, Jack Holloway, Guy L. Steele. AI Lab memos, AIM-528, 1979. *"[http://hdl.handle.net/1721.1/5731 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]]. [https://dspace.mit.edu/handle/1721.1/6353 ''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. <!-- Follow this up, ask Knight for a copy. --> *[http://bitsavers.org/pdf/mit/cadr/chinual_6thEd_Jan84/ Lisp Machine manual], 6th ed. [[Richard Stallman]], [[Daniel Weinreb]], [[David A. Moon]]. 1984. <!-- *"The Symbolics Ivory Processor: A 40 Bit Tagged Architecture LISP Microprocessor." [[Clark Baker]], [[David Chan]], et al.; 1987 [[IEEE]] International Conference on Computer Design, VLSI in computers & processors --> *"Anatomy of a LISP Machine", [[Paul Graham (computer programmer)|Paul Graham]], ''AI Expert'', December 1988 *''[[Free as in Freedom: Richard Stallman's Crusade for Free Software]]'' <!-- Note to self: include this one somewhere: "Some systems have tried to address these difficulties. Smalltalk-80 and the Lisp machine both represented one means to get around the problem. System code is not distinguished from user code; all of the system is accessible to the user and can be changed as needed. Both systems were built around languages that facilitated such easy replacement and extension, and were moderately successful. But they both were fairly poor at insulating users and programs from each other, failing one of the principal goals of OS design." from GNU's "Towards a New Strategy of OS Design" (GNU's Bulletin, vol. 1 no. 16), https://www.gnu.org/bulletins/bull16.html#SEC13 --> {{refend}} ==External links== *[http://www.symbolics-dks.com/ Symbolics website] *[https://web.archive.org/web/20080516233113/http://top2bottom.net/medley.html Medley] *Bitsavers, PDF documents **[http://www.bitsavers.org/pdf/lmi LMI documentation] **[http://www.bitsavers.org/pdf/mit/cons MIT CONS documentation] **[http://www.bitsavers.org/pdf/mit/cadr MIT CADR documentation] *Lisp Machine Manual, Chinual **[http://www.bitsavers.org/pdf/mit/cadr/chinual_4thEd_Jul81.pdf "The Lisp Machine manual, 4th Edition, July 1981"] **[https://hanshuebner.github.io/lmman/frontpage.html "The Lisp Machine manual, 6th Edition, HTML/XSL version"] **[http://doi.acm.org/10.1145/1056737.1056738 "The Lisp Machine manual"] *[http://eval.apply.googlepages.com/ Information and code for LMI Lambda and LMI K-Machine] *{{webarchive |url=https://web.archive.org/web/20150623075159/http://www.ugcs.caltech.edu/~weel/lispm.php |date=23 June 2015 |title=Jaap Weel's Lisp Machine Webpage }} – A set of links and locally stored documents regarding all manner of Lisp machines *[http://fare.tunes.org/LispM.html "A Few Things I Know About LISP Machines"] – A set of links, mostly discussion of buying Lisp machines *[http://www.ifis.uni-luebeck.de/~moeller/symbolics-info/symbolics.html Ralf Möller's Symbolics Lisp Machine Museum] *[https://web.archive.org/web/20060307230903/http://starfish.rcsri.org/rcs/VCF-East-2001/Images.html Vintage Computer Festival pictures of some Lisp machines, one running Genera] *[http://www.lispmachine.net/ LISPMachine.net – Lisp Books and Information] *[https://web.archive.org/web/20180204160249/http://www.andromeda.com/people/ddyer/lisp/ Lisp machines timeline] – a timeline of Symbolics' and others' Lisp machines *{{in lang|fr}} [http://www.limsi.fr/~jps/actions/m3l/doc/m3l.presentation.htm "Présentation Générale du projet M3L"] – An account of French efforts in the same vein *Discussion **[http://www.ifis.uni-luebeck.de/~moeller/symbolics-info/ai-business.pdf "If It Works, It's Not AI: A Commercial Look at Artificial Intelligence startups"] **[http://www.ifis.uni-luebeck.de/~moeller/symbolics-info/Symbolics.pdf "Symbolics, Inc.: A failure of Heterogenous engineering"] – (PDF) **[https://www.gnu.org/gnu/rms-lisp.html "My Lisp Experiences and the Development of GNU Emacs"] – transcript of a speech [[Richard Stallman]] gave about Emacs, Lisp, and Lisp machines {{Lisp programming language}} [[Category:Lisp (programming language)]] [[Category:Computer workstations]] [[Category:History of artificial intelligence]] [[Category:High-level language computer architecture]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:About
(
edit
)
Template:Ambox
(
edit
)
Template:Anchor
(
edit
)
Template:As of
(
edit
)
Template:Citation
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite magazine
(
edit
)
Template:Cite web
(
edit
)
Template:Disputed inline
(
edit
)
Template:IPA
(
edit
)
Template:In lang
(
edit
)
Template:Lisp programming language
(
edit
)
Template:Original research
(
edit
)
Template:Refbegin
(
edit
)
Template:Refend
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Snd
(
edit
)
Template:Use dmy dates
(
edit
)
Template:Webarchive
(
edit
)