History of the Scheme programming language: Difference between revisions

Content deleted Content added
{{expand}}
Line 6:
Lisp was invented by [[John McCarthy (computer scientist)|John McCarthy]] in 1958 while he was at the [[Massachusetts Institute of Technology]] (MIT). McCarthy published its design in a paper in ''[[Communications of the ACM]]'' in 1960, entitled "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I"<ref name="MCCARTHY">{{cite web | title=Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I| author=John McCarthy | url=http://www-formal.stanford.edu/jmc/recursive.html | accessdate=2006-10-13}}</ref> ("Part II" was never published). He showed that with a few simple operators and a notation for functions, one can build a [[Turing-complete]] language for algorithms.
 
The use of [[sS-expression]]s which characterize the syntax of Lisp was initially intended to be an interim measure pending the development of a language employing what McCarthy called "[[M-expression]]s". As an example, the M-expression <CODE><nowiki>car[cons[A,B]]</nowiki></CODE> is equivalent to the S-expression <CODE>(car&nbsp;(cons&nbsp;A&nbsp;B))</CODE>. S-expressions proved popular, however, and the many attempts to implement M-expressions failed to catch on.
 
The first implementation of Lisp was on an [[IBM 704]] by [[Steve Russell]], who read McCarthy's paper and coded the eval function he described in machine code. The familiar (but puzzling to newcomers) names [[car and cdr|CAR and CDR]] used in Lisp to describe the head element of a list and its tail, evolved from two [[IBM 704]] assembly language commands: Contents of Address Register and Contents of Decrement Register, each of which returned the contents of a 15-bit register corresponding to segments of a 36-bit IBM 704 instruction word.
Line 12:
The first complete Lisp compiler, written in Lisp, was implemented in 1962 by Tim Hart and Mike Levin at MIT.<ref name="LEVIN">{{cite web | title=AI Memo 39-The new compiler| author=Tim Hart and Mike Levin | url=ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-039.pdf | accessdate=2006-10-13}}</ref> This compiler introduced the Lisp model of incremental compilation, in which compiled and interpreted functions can intermix freely.
 
The two variants of Lisp most significant in the development of Scheme were both developed at MIT: LISP 1.5<ref>{{cite book | url = http://community.computerhistory.org/scc/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf | title = LISP 1.5 Programmer's Manual | publisher = [[MIT Press]] | first1 = John | last1 = McCarthy | first2 = Paul W. | last2 = Abrahams | first3 = Daniel J. | last3 = Edwards | first4 = Timothy P. | last4 = Hart | first5 = Michael I. | last5 = Levin | isbn = 0 262 130 1 1 4 | year = 1985}}</ref> developed by McCarthy and others at MIT, and [[Maclisp|MACLISP]]<ref>{{cite web | url = http://zane.brouhaha.com/~healyzh/doc/lisp.doc.txt | title = Maclisp Reference Manual | date = March 3, 1979 | archiveurl = http://web.archive.org/web/20071214064433/http://zane.brouhaha.com/~healyzh/doc/lisp.doc.txt | archivedate = 2007-12-14}}</ref> – developed for MIT's [[Project MAC]], a direct descendant of LISP 1.5. which ran on the PDP-10 and [[Multics]] systems.
 
Since its inception, Lisp was closely connected with the [[artificial intelligence]] research community, especially on [[PDP-10]]<ref>The 36-bit word size of the [[PDP-6]]/[[PDP-10]] was influenced by the usefulness of having two Lisp 18-bit pointers in a single word. {{cite newsgroup | quote = The PDP-6 project started in early 1963, as a 24-bit machine. It grew to 36 bits for LISP, a design goal. | url = http://groups.google.com/group/alt.folklore.computers/browse_thread/thread/6e5602ce733d0ec/17597705ae289112 | title = The History of TOPS or Life in the Fast ACs | newsgroup = alt.folklore.computers | id = 84950@tut.cis.ohio-state.edu | date = 18 October 1990 | author = Peter J. Hurley}}</ref> systems. Lisp was used as the implementation of the programming language [[Planner programming language|Micro Planner]] that was the foundation for the famous AI system [[SHRDLU]].