User:Crlf0710/LISP (programming language)
From Wikipedia, the free encyclopedia
LISP is a computer programming language developed by John McCarthy. It is also the initial member of the Lisp programming family, which has a long history and the distinctive, fully parenthesized prefix notation heritage.[3] Originally specified in 1958, Lisp is the second-oldest high-level programming language whose descendant is in widespread use today. Only Fortran is older, by one year.[4][5]
Paradigm | Multi-paradigm: functional, procedural, reflective, meta |
---|---|
Designed by | John McCarthy |
Developer | Steve Russell, Timothy P. Hart, and Mike Levin |
First appeared | 1958; 66 years ago (1958) |
Typing discipline | dynamic, strong |
Dialects | |
Influenced by | |
IPL | |
Influenced | |
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, the self-hosting compiler,[6] and the read–eval–print loop.[7]
The name LISP derives from "LISt Processor".[8] Linked lists are one of Lisp's major data structures, and Lisp source code is made of lists. Thus, 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.
The interchangeability of code and data gives Lisp its instantly recognizable syntax. All program code is written as s-expressions, or parenthesized lists. A function call or syntactic form is written as a list with the function or operator's name first, and the arguments following; for instance, a function f
that takes three arguments would be called as (f arg1 arg2 arg3)
.
LISP official development stopped when LISP 2.0 project was abandoned, however several projects continued their Lisp development on the basis of Lisp 1.5, which eventually derived into their own languages in the 1970s. Following Lisp tradition, these languages are seen as members of Lisp programming language family, called Lisp dialects. Since then many Lisp dialects have existed over the whole history of the Rust programming language family.