A short history of Lisp machines

Hello, Habr!

Some of the articles I noticed that the authors promised to tell you about the history of Lisp machines, but never told. Perhaps this short article will be of interest to history buffs IT.

Yes, there was a little machine with hardware support for the lambda calculus with around 7,000 pieces in the world as of 1988. Now much smaller, of course. In fact, the Lisp machine has played a fairly strong role in the history of information technology. Thanks to these strange computers in the world got, technologies such as laser printing and multi-window GUI.



the Backstory



In the 1930-ies some mathematicians tried to understand and analyse the notion of computability. One of such attempts was made by Alonzo Church created the λ-calculus. Write here about it I won't be too big. It is assumed that you at least know that word :).

Calculus the calculus, but it would be necessary to apply it. When work began in the field of artificial intelligence, there is a need in the programming language, allows to adequately solve the problems in this area. At this time John McCarthy worked at MIT from 1958 to 1963, developed a Lisp, based on IPL, prednaznachili to implement an AI that can automatically deduce theorems of mathematical logic. The first version of the Lisp interpreter worked on the IBM 704. 1960 Lisp was ported to the PDP-1. In General, Lisp widely. There was only one problem — the Lisp worked pretty slow on a classical (i.e. standard of architecture in this context) computer. Before turning to the history of Lisp machines, it is advisable to examine their surface architecture.

the Theory of Lisp-machines



Take spherical the implementation of a Lisp machine and look at it. As we already know, program it in Lisp E. of Course, the processor does not execute Lisp code directly, but the firmware and stachova machine optimized for execution of code. This allowed us to work calmly and with rational and complex numbers. OS uses virtual memory to provide a large enough address space, and the garbage collector automatically removes unnecessary objects from memory, freeing up space for new things (well about that, you know, the point is that the garbage collector has completed). The architecture refers to tagged arch., I now briefly explain what it is because of information about it in Russian is extremely small.

Tagged (marked?) the architecture assumes that each word in memory contains a so-called tag, dividing the word into two parts — the first part contains the information itself, the second part describes how it should be interpreted, and the CDR code to simplify garbage collection at times. Enough theory, let's move on to the "hardware".

Hardware implementation of λ-calculus



Came 1973. In the AI lab at the Massachusetts Institute seriously thinking on creating a computer architecture with hardware support for LISP, because in those days the execution of LISP programs on your computer the standard architecture was not for the faint of heart. Typing one variable could take several minutes, since it is executed during execution of the program, not compile it. Create a "miracle of architecture" has assigned two programmers Greenblatt and knight.

"Draft" 24 bit version of the architecture was named in honor of the operator of constructing the lists and was called the CONS. This machine knight defended his doctoral thesis. In the future, the architecture of the machine was improved and called CADR (after the Lisp function cadr). It is one thing to develop the architecture, and another thing to create a computer. And then the arena goes Symbolics, Inc.

Symbolics, Inc.



Symbolics, Inc. was founded by Rousselot (Russell Noftsker) in Massachusette, she later moved to California. The company is engaged in the production of LISP machines, as well as writing for them. She was not the only company that produces strange computers, in addition to it, the same thing had been Lisp Machines, Inc, but the Symbolics was a large number of specialists and desires. By the way, symbolics.com was perhaps the first Internet domain in the zone .com.
In 1981 the company was created first and the last 32-bit machine architecture CADR — CADR / LM-2 with 1MB of RAM on Board. OS and apps for it were written, oddly enough, is in fact Lisp, or to be more precise, the dialect of Lisp Machine Lisp. In 1982 was created the operating system Open Genera and ported Emacs (Zmacs), it was possible to work on the LISP machine and show poor humans the full power of lambda calculus.

In Open Genera Lisp Machine OS and a host of tasty buns, such as garbage collectors, virtual memory Manager, multi-tasking GUI, debugger, and support Chaosnet.

As a result of exchanges between MIT and Symbolics about the licenses (as you have already understood, it was visited by Richard Stallman), their collaboration ended somewhere around 1983. And Richard, as if nothing had happened, and organized his gang LISP hackers, consisting mainly of MIT people.

In 1983, Symbolics introduced the first model of a new line of LISP machines — Symbolics 3600, the size of a home refrigerator, based on the CADR architecture. Of course, not without innovation. In addition to the "innovative" new design machine got hardware support for garbage collection and virtual memory. The processor was a 36 bit memory is operated on 44 bit words, 8 bits were used for error correction (ECC). The architecture of the 3600 contains 4096 registers (CISC, Hello!), half of which was used to stack calls and the other half by the microcode and loving time programs and drivers (by the Way, as far as I know, the concept of driver was introduced in the process of building Lisp machines).

3600 was built on TTL integrated circuits and has a frequency of about 5 MHz. Not a lot, but given the hardware support of LISP at the time was very thick. Support Chaosnet has been discontinued from now on Symbolics supported only Ethernet. In just three years was released five members of the line 36хх — 3600, 3670, 3640, 3675 and 3645. Later models differed only by the number of megahertz and other figures, significant changes in architecture was not.

Members of the line 3600 was very popular in the field of research of artificial intelligence. Incidentally, the machine is 3600 line was capable of processing HDTV quality video, and that was the reason for their popularity in Japan.

In 1988 the company introduced the world to a line of Ivory, the first representative of which was XL400. These computers were already 40-bit and allow you to address 16GB of memory. The chip architecture Ivory produced VLSI and Hewlett Packard, and used them, in addition to the Symbolics also Sun and Apple (Yes, the Lisp processor used in Macs, though not as the primary ).

Let's try to look at the assembler source code for processors Ivory:

the
ENTRY: 2 REQUIRED, 0 OPTIONAL 
PUSH 0 
PUSH FP|3 
PUSH NIL 
BRANCH 15
SET-TO-CDR-PUSH-CAR FP|5
SET-SP-TO-ADDRESS-SAVE-TOS SP|-1
START-CALL FP|2 
PUSH FP|6 
FINISH-CALL-1-VALUE
BRANCH-FALSE 15
INCREMENT FP|4 
ENDP FP|5
BRANCH-FALSE 6
SET-SP-TO-ADDRESS SP|-2
RETURN-SINGLE-STACK


Which is equivalent to the following Lisp code:

the
(defun example-count (predicate list)
(let ((count 0))
(dolist (i list count)
(when (funcall predicate i)
(incf count)))))


Not bad, huh? As you can see, mnemonics were quite long, it's the assembler it is difficult to call in usual my understanding. If you are interested in the assembler Ivory and other machines, you can look at the documents bitsavers.org. There are many other manuals of Symbolics.

It is worth mentioning the attempt to create a RISC processor on the basis of the Ivory — Sunstone. But the project was abandoned. To LISP machines also had a hand BBN and Xerox. The creation of the BBN was the Jericho machine that was programmed to Inerlisp. This creature was never sold. Xerox Parc in the 1980s created my Xerox Lisp Machine, which is known for having had a full development environment InterLisp-D and the first Hypertext application (NoteCards).

Known successful attempts of creation of LISP machines Japanese engineers, these machines can be called TAKITAC-7 and EVLIS developed in Osaka University. Unfortunately, about which I have nothing at the moment can not tell.
The End


But nothing could stop the increasing power of classical computers. Hardware support for lambda calculus was unnecessary. In the end, Symbolics went bankrupt, and in 1995 ended the era of LISP machines. But we will not forget, right? :)

In conclusion, I want to say that Lisp machines is not the only attempt to make a computer with hardware support for language X. there was the implementation of Prolog and Java machines, but more about that some other time. Thank you for reading :).

PS If you see an inaccuracy or a mistake, please send a PM.
Article based on information from habrahabr.ru

Комментарии

Популярные сообщения из этого блога

Why I left Google Zurich

2000 3000 icons ready — become a sponsor! (the table of orders)

New web-interface for statistics and listen to the calls for IP PBX Asterisk