Content deleted Content added
m →Carl Hewitt, the Actor model, and the birth of Scheme: Task 16: replaced (1×) / removed (0×) deprecated |dead-url= and |deadurl= with |url-status=; |
Rescuing 1 sources and tagging 1 as dead.) #IABot (v2.0 |
||
Line 7:
===Lisp===
{{details|Lisp (programming language)}}
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 |url=http://www-formal.stanford.edu/jmc/recursive.html |title=Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I |last=McCarthy |first=John |author-link=John McCarthy (computer scientist) |access-date=2006-10-13 |archive-url=https://web.archive.org/web/20131004215327/http://www-formal.stanford.edu/jmc/recursive.html |archive-date=2013-10-04 |url-status=dead }}</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 [[s-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>car[cons[A,B]]</code> is equivalent to the s-expression <code>{{Nowrap|(car (cons A B))}}</code>. S-expressions proved popular, however, and the many attempts to implement m-expressions failed to catch on.
Line 13:
The first implementation of Lisp was on an [[IBM 704]] by [[Steve Russell (computer scientist)|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]] 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 (computer architecture)|word]].
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 |url=ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-039.pdf |title=AI Memo 39, The New Compiler |last=Hart |first=Tim |last2=Levin |first2=Mike |access-date=2006-10-13 }}{{Dead link|date=January 2020 |bot=InternetArchiveBot |fix-attempted=yes }}</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=https://archive.org/details/lisp15programmer00john |title=LISP 1.5 Programmer's Manual |publisher=[[MIT Press]] |last=McCarthy |first=John |author-link=John McCarthy (computer scientist) |last2=Abrahams |first2=Paul W. |last3=Edwards |first3=Daniel J. |last4=Hart |first4=Timothy P. |last5=Levin |first5=Michael I. |isbn=978-0-262-13011-0 |year=1985 |url-access=registration }}</ref> developed by McCarthy and others, and [[Maclisp]]<ref>{{cite web |url=http://zane.brouhaha.com/~healyzh/doc/lisp.doc.txt |title=Maclisp Reference Manual |date=March 3, 1979 |archive-url=https://web.archive.org/web/20071214064433/http://zane.brouhaha.com/~healyzh/doc/lisp.doc.txt |archive-date=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.
|