Content deleted Content added
→History: Correct factual inaccuracy. According to the source cited for the blockquote, Russell was working for MacCarthy and the exchange happened before the paper was published. |
m →History: Add citation needed template |
||
Line 101:
[[John McCarthy (computer scientist)|John McCarthy]] began developing Lisp in 1958 while he was at the [[Massachusetts Institute of Technology]] (MIT). He was motivated by a desire to create an AI programming language that would work on the IBM 704, as he believed that "IBM looked like a good bet to pursue Artificial Intelligence research vigorously."<ref name="wexelblat-history-programming-languages>{{cite book |title=History of programming languages |last1=McCarthy |first1=John |last2=Wexelblat |first2=Richard L. |year=1978 |isbn=0127450408 |publisher=Association for Computing Machinery |page=173-183}}</ref> He was influenced by the design (and limitations) of the [[Fortran]] List Processing Language, which implemented the core idea of taking instruction input as a series of lists but used Fortran as a host language. McCarthy was dissatisfied with this language because it did not support [[Recursion (computer science)|recursion]] or a modern [[Conditional (computer programming)#If–then(–else)|if-then-else]] statement (which was a new concept when lisp was first introduced) {{NoteTag|At the time, Fortran had an if-then-else construct that accepted line numbers as jump targets, in the manner of a [[Goto]] statement, rather than accepting arbitrary expression in "then" and "else" blocks}}<ref name="wexelblat-history-programming-languages" />.
[[Information Processing Language]] was the first [[Artificial intelligence|AI]] language, from 1955 or 1956, and already included many of the concepts, such as list-processing and recursion, which came to be used in Lisp.{{citation-needed|Reason=The only direct link I see between the two is that Stoyan mentions that McCarthy was "not very impressed by" IPL. It's not clear that IPL's use of these concepts directly led to McCarthy including them.}}
McCarthy's original notation used bracketed "[[M-expression]]s" that would be translated into [[S-expression]]s. As an example, the M-expression {{Lisp2|car[cons[A,B]]}} is equivalent to the S-expression {{Lisp2|(car (cons A B))}}. Once Lisp was implemented, programmers rapidly chose to use S-expressions, and M-expressions were abandoned <ref name="wexelblat-history-programming-languages />. M-expressions surfaced again with short-lived attempts of [[MLisp]]<ref name="Smith">{{cite book |last=Smith |first=David Canfield |title=MLISP Users Manual |url=http://www.softwarepreservation.org/projects/LISP/stanford/Smith-MLISP-AIM-84.pdf |access-date=2006-10-13}}</ref> by Horace Enea and [[CGOL]] by [[Vaughan Pratt]].
|