Generated by DeepSeek V3.2| LISP | |
|---|---|
| Name | LISP |
| Paradigm | Functional programming, Metaprogramming, Reflective programming |
| Designer | John McCarthy |
| Developer | Steve Russell, Timothy P. Hart, Mike Levin |
| Typing | Dynamic typing, Strong typing |
| Implementations | Common Lisp, Scheme, Clojure, AutoLISP |
| Influenced | Prolog, Smalltalk, Python, Ruby, JavaScript, Haskell |
LISP. LISP is a family of programming languages with a long history and distinctive, fully parenthesized prefix notation. Originally created in 1958 by John McCarthy, it is the second-oldest high-level language still in widespread use, after Fortran. LISP pioneered many ideas in Computer science, including tree data structures, Automatic storage management, Dynamic typing, and the self-hosting compiler.
The language was conceived by John McCarthy in 1958 while he was at the Massachusetts Institute of Technology, with key early implementations, including the first interpreter, written by Steve Russell. Its development was closely tied to early Artificial intelligence research at institutions like MIT and Stanford University. The publication of the seminal textbook Structure and Interpretation of Computer Programs by Harold Abelson and Gerald Jay Sussman cemented its role in computer science education. Major dialects like Maclisp and later Common Lisp were standardized through efforts by individuals such as Guy L. Steele Jr. and organizations like the American National Standards Institute.
At its core, LISP syntax is built upon S-expressions, which are list structures written as parenthesized prefix expressions. This uniform syntax, where code is directly represented as a data structure, enables powerful Metaprogramming techniques through macros. The fundamental semantic unit is the evaluation of expressions, governed by the read–eval–print loop central to interactive development. This design directly influenced the syntax of later languages like Julia and aspects of XML.
The primary and iconic data structure is the list, constructed from cons cells that form binary trees. These symbols and lists facilitate the creation of more complex structures like association lists, property lists, and hash tables. LISP also introduced the concept of garbage collection for automatic memory management of these structures. Modern dialects incorporate a wider range of sequences, including arrays and vectors, as seen in implementations like Steel Bank Common Lisp.
Key features include first-class functions, Dynamic typing, and an advanced macro system that allows programmers to extend the language itself. Major standardized variants include Common Lisp, a large, multi-paradigm language, and the minimalist Scheme, known for its emphasis on Lambda calculus and lexical scoping. More recent members of the family include Clojure, which runs on the Java virtual machine and emphasizes concurrency, and Emacs Lisp, the extension language for the GNU Emacs editor. Other historical dialects include Interlisp and Franz Lisp.
LISP has been profoundly influential, particularly in the field of Artificial intelligence, where it was used in pioneering projects like SHRDLU and Dendral. Its concepts underpin the development of languages such as Prolog, Smalltalk, Python, and Ruby. Practical applications range from the AutoCAD scripting language AutoLISP to its use in the Roomba robotic vacuum cleaner's software. The language's ideas about code-as-data and Metaprogramming continue to influence modern programming paradigms and the design of tools like the Julia language.
Category:Programming languages Category:Lisp programming language family