Lisp
Lisp
LISP, an acronym for list processing,
is a programming language that was designed for easy manipulation of
data strings. Developed in 1959 by John McCarthy, it is a commonly used
language for artificial intelligence (AI) programming. It is one of the oldest programming languages still in relatively wide use.
Lisp (historically, LISP) is a family of computer programming languages with a long history and a distinctive, fully parenthesized Polish prefix notation.Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today; only Fortran is older (by one year) Like Fortran, Lisp has changed a great deal since its early days, and a number of dialects have existed over its history. Today, the most widely known general-purpose Lisp dialects are Common Lisp and Scheme.
Lisp was originally created as a practical mathematical notation for computer programs, influenced by the notation of Alonzo Church's lambda calculus. It quickly became the favored programming language for artificial intelligence (AI) research. As one of the earliest programming languages, Lisp pioneered many ideas in computer science, including tree data structures, automatic storage management, dynamic typing, conditionals, higher-order functions, recursion, and the self-hosting compiler.
The name LISP derives from "LISt Processing". Linked lists are one of Lisp's major data structures, and Lisp source code is itself made up of lists. As a result, Lisp programs can manipulate source code as a data structure, giving rise to the macro systems that allow programmers to create new syntax or new domain-specific languages embedded in Lisp.
HISTORY:
Lisp was invented by 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"[5] ("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.
Information Processing Language
was the first 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.
McCarthy's original notation used bracketed "M-expressions" that would be translated into S-expressions. As an example, the M-expression
car[cons[A,B]]
is equivalent to the S-expression (car (cons A B))
.
Once Lisp was implemented, programmers rapidly chose to use
S-expressions, and M-expressions were abandoned. M-expressions surfaced
again with short-lived attempts of MLISP[6] by Horace Enea and CGOL by Vaughan Pratt.
Lisp was first implemented by Steve Russell on an IBM 704 computer. Russell had read McCarthy's paper, and realized (to McCarthy's surprise) that the Lisp eval function could be implemented in machine code.[7]
The result was a working Lisp interpreter which could be used to run
Lisp programs, or more properly, 'evaluate Lisp expressions.'
Two assembly language macros for the IBM 704 became the primitive operations for decomposing lists:
car
(Contents of the Address part of Register number) and cdr
(Contents of the Decrement part of Register number).From the context, it is clear that the term "Register" is used here to
mean "Memory Register", nowadays called "Memory Location". Lisp dialects
still use car
and cdr
for the operations that return the first item in a list and the rest of the list respectively.
The first complete Lisp compiler, written in Lisp, was implemented in 1962 by Tim Hart and Mike Levin at MIT.This compiler introduced the Lisp model of incremental compilation, in
which compiled and interpreted functions can intermix freely. The
language used in Hart and Levin's memo is much closer to modern Lisp
style than McCarthy's earlier code.
Lisp was a difficult system to implement with the compiler techniques and stock hardware of the 1970s. Garbage collection routines, developed by then-MIT graduate student Daniel Edwards, made it practical to run Lisp on general-purpose computing systems, but efficiency was still a problem.[citation needed] This led to the creation of Lisp machines:
dedicated hardware for running Lisp environments and programs. Advances
in both computer hardware and compiler technology soon made Lisp
machines obsolete.[citation needed]
During the 1980s and 1990s, a great effort was made to unify the work on new Lisp dialects (mostly successors to Maclisp like ZetaLisp and NIL (New Implementation of Lisp)) into a single language. The new language, Common Lisp, was somewhat compatible with the dialects it replaced (the book Common Lisp the Language notes the compatibility of various constructs). In 1994, ANSI published the Common Lisp standard, "ANSI X3.226-1994 Information Technology Programming Language Common Lisp.
lisp founder:
John McCarthy
John McCarthy (September 4, 1927 – October 24, 2011)was an American computer scientist and cognitive scientist. McCarthy was one of the founders of the discipline of artificial intelligence. He coined the term "artificial intelligence" (AI), developed the Lisp programming language family, significantly influenced the design of the ALGOL programming language, popularized timesharing, and was very influential in the early development of AI.
McCarthy received many accolades and honors, such as the Turing Award for his contributions to the topic of AI, the United States National Medal of Science, and the Kyoto Prize.
McCarthy received many accolades and honors, such as the Turing Award for his contributions to the topic of AI, the United States National Medal of Science, and the Kyoto Prize.
Personal life and education:
John McCarthy was born in Boston, Massachusetts on September 4, 1927 to an Irish immigrant father and a Lithuanian Jewish immigrant mother, John Patrick and Ida Glatt McCarthy. The family was obliged to relocate frequently during the Great Depression, until McCarthy's father found work as an organizer for the Amalgamated Clothing Workers in Los Angeles, California.McCarthy was exceptionally intelligent, and graduated from Belmont High School two years early.He showed an early aptitude for mathematics; during his teens he taught himself college mathematics by studying the textbooks used at the nearby California Institute of Technology (Caltech). As a result, when McCarthy was accepted into Caltech in 1944, he was able to skip the first two years of mathematics.
McCarthy was suspended from Caltech for failure to attend physical education courses; he then served in the US Army and was readmitted, receiving a B.S. in Mathematics in 1948. It was at Caltech that he attended a lecture by John von Neumann that inspired his future endeavors. McCarthy initially continued his studies at Caltech. He received a Ph.D. in Mathematics from Princeton University in 1951 as a student of Solomon Lefschetz.
McCarthy was married three times. His second wife was Vera Watson, a programmer and mountaineer who died in 1978 attempting to scale Annapurna I as part of an all-women expedition organised by Arlene Blum. He later married Carolyn Talcott, a computer scientist at Stanford and later SRI International. McCarthy considered himself an atheist.
Career in computer science
After short-term appointments at Princeton, Stanford University, Dartmouth, and MIT, he became a full professor at Stanford in 1962, where he remained until his retirement at the end of 2000. By the end of his early days at MIT he was already affectionately referred to as "Uncle John" by his students.McCarthy championed mathematical logic for artificial intelligence. In 1956, he organized the first international conference to emphasize artificial intelligence. One of the attendees was Marvin Minsky, who later became one of the main AI theorists and joined McCarthy at MIT in 1959.During the autumn of 1956, McCarthy won an MIT research fellowship. He served on the committee that designed ALGOL, which became a very influential programming language by introducing many new constructs now in common use. In 1958, he proposed the advice taker, which inspired later work on question-answering and logic programming. Lisp was invented by John McCarthy in the late 1950s as a mathematical formalism for reasoning about the use of recursion equations as a model for computation. Around 1959, he invented so-called "garbage collection" methods to solve problems in Lisp. Based on the lambda calculus, Lisp soon became the programming language of choice for AI applications after its publication in 1960.[14] He helped to motivate the creation of Project MAC at MIT, but left MIT for Stanford University in 1962, where he helped establish the Stanford AI Laboratory, for many years a friendly rival to Project MAC.
In 1961, he was perhaps the first to suggest publicly the idea of utility computing, in a speech given to celebrate MIT's centennial: that computer time-sharing technology might result in a future in which computing power and even specific applications could be sold through the utility business model (like water or electricity). This idea of a computer or information utility was very popular during the late 1960s, but faded by the mid-1990s. However, since 2000, the idea has resurfaced in new forms (see application service provider, grid computing, and cloud computing).
In 1966, McCarthy and his team at Stanford wrote a computer program used to play a series of chess games with counterparts in the Soviet Union; McCarthy's team lost two games and drew two games (see Kotok-McCarthy).
From 1978 to 1986, McCarthy developed the circumscription method of non-monotonic reasoning.
McCarthy is also credited with developing an early form of time-sharing. His colleague Lester Earnest told the Los Angeles Times: "The Internet would not have happened nearly as soon as it did except for the fact that John initiated the development of time-sharing systems. We keep inventing new names for time-sharing. It came to be called servers.... Now we call it cloud computing. That is still just time-sharing. John started it."
In 1982 he seems to have originated the idea of the "space fountain", a type of tower extending into space and kept vertical by the outward force of a stream of pellets propelled from Earth along a sort of conveyor belt which returns the pellets to Earth (payloads would ride the conveyor belt upward).
McCarthy often commented on world affairs on the Usenet forums. Some of his ideas can be found in his sustainability Web page, which is "aimed at showing that human material progress is desirable and sustainable". McCarthy was a serious book reader, an optimist, and a staunch supporter of free speech. His best Usenet interaction is visible in rec.arts.books archives. And John actively attended SF Bay Area dinners in Palo Alto of r.a.b. readers called rab-fests. John went on to defend free speech criticism involving European ethnic jokes at Stanford.
McCarthy saw the importance of mathematics and mathematics education. His Usenet .sig for years was, "He who refuses to do arithmetic is doomed to talk nonsense"; his license plate cover read, similarly, "Do the arithmetic or be doomed to talk nonsense." He advised 30 PhD graduates.
His 2001 short story "The Robot and the Baby" farcically explored the question of whether robots should have (or simulate having) emotions, and anticipated aspects of Internet culture and social networking that became more prominent during the ensuing decade.
Comments
Post a Comment