History of the Scheme programming language: Difference between revisions

Content deleted Content added
SRFI
mNo edit summary
Line 11:
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.
 
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 computing|36-bit]] IBM &nbsp;704 instruction [[Wordword (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 |archive-url=https://web.archive.org/web/20201213195043/ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-039.pdf |url-status=dead |archive-date=2020-12-13 |title=AI Memo 39, The New Compiler |last=Hart |first=Tim |last2=Levin |first2=Mike |access-date=2006-10-13 }}</ref> This compiler introduced the Lisp model of incremental compilation, in which compiled and interpreted functions can intermix freely.
Line 17:
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.
 
Since its inception, Lisp was closely connected with the [[artificial intelligence]] (AI) research community, especially on [[PDP-10]]. The 36-bit word size of the [[PDP-6]] and [[PDP-10]] was influenced by the usefulness of having two Lisp [[18-bit computing|18-bit]] pointers in one word.<ref>{{cite newsgroup |quote=The PDP-6 project started in early 1963, as a [[24-bit computing|24-bit]] machine. It grew to 36 bits for LISP, a design goal. |url=https://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 |message-id= 84950@tut.cis.ohio-state.edu |date=18 October 1990 |last=Hurley |first=Peter J.}}</ref>
 
===ALGOL===
{{detailsDetails|ALGOL}}
[[ALGOL 58]], originally to be called IAL for "International Algorithmic Language", was developed jointly by a committee of European and American computer scientists in a meeting in 1958 at [[ETH Zurich]]. [[ALGOL 60]], a later revision developed at the ALGOL 60 meeting in Paris and now commonly named [[ALGOL]], became the standard for the publication of algorithms and had a profound effect on future language development, despite the language's lack of commercial success and its limitations. [[Tony Hoare]] has remarked: "Here is a language so far ahead of its time that it was not only an improvement on its predecessors but also on nearly all its successors."<ref>{{cite book |last=Hoare |first=Tony |author-link=Tony Hoare |date=December 1973 |title=Hints on Programming Language Design |url=http://www.eecs.umich.edu/~bchandra/courses/papers/Hoare_Hints.pdf |page=27 }} (This statement is sometimes erroneously attributed to [[Edsger W. Dijkstra]], also involved in implementing the first ALGOL 60 [[compiler]].)</ref>