The programming language Lisp is the second-oldest high-level programming language with direct descendants and closely related dialects still in widespread use today. The language Fortran is older by one year.[1][2] Lisp, like Fortran, has changed a lot since its early days, and many dialects have existed over its history. Today, the most widely known general-purpose Lisp dialects are Common Lisp and Scheme.
Language | Year begun | Created by (at) | Comments | References |
---|---|---|---|---|
Chialisp | 2019 | Bram Cohen | Powerful, secure LISP-like language for Chia blockchain to encumber and release funds with smart-contract abilities | [3][4][5] |
ACL2 | 1990 | Robert Boyer, J Moore, Matt Kaufmann |
A Computational Logic for Applicative Common Lisp consists of a programming language, an extensible theory in a first-order logic, and a mechanical theorem prover | [6] |
Arc | 2008 | Paul Graham | Dialect of Lisp developed by Paul Graham and Robert Morris | [7] |
AutoLISP | 1986 | David Betz | Built to include and use with the full version of AutoCAD and its derivatives | [8] |
BBN LISP | 1966 | BBN | Based on L. Peter Deutsch's implementation of Lisp for PDP-1, which was developed from 1960 to 1964; in time language was expanded until it became its own separate dialect in 1966; later renamed Interlisp | [9] |
Chez Scheme | 1985 | R. Kent Dybvig | Scheme dialect | |
Chicken | 2000 | Felix Winkelmann | Scheme dialect | |
Clojure | 2007 | Rich Hickey | Lisp dialect, emphasizes functional programming; runs on Java virtual machine, Common Language Runtime, and JavaScript engines; like other Lisps, treats code as data (homoiconicity) and has a macro system | [10] |
ANSI Common Lisp | 1994 | ANSI X3J13 committee | Common Lisp enhanced and standardized, published in ANSI standard document ANSI INCITS 226-1994; to the features of Common Lisp, it adds the loop macro, and the Common Lisp Object System (CLOS) to provide object-oriented programming paradigm with multiple dispatch (multimethods), and method combinations; runs on many platforms: Unix, Linux, macOS, Windows, JVM, JavaScript, Unix/C, LLVM/C++, Android, iOS | [11] |
Common Lisp | 1984 | Lisp dialect first standardized in a book, "Common Lisp the Language", by Guy L. Steele,[12] developed as a standardized and improved successor of Maclisp; statically and dynamically scoped; strongly-typed, allows (optional) type declarations;[13] separate namespaces for functions versus data variables, a trait often named Lisp-2; object-oriented programming is possible via libraries such as Flavors, CommonLOOPS, and later CLOS; treats code as data (homoiconicity) and has a macro system; The reader is extensible via reader macros[13] | [11] | |
Dylan | 1992 | Apple Computer | Mostly based on Scheme and Common Lisp, was designed as system and application programming language by Apple; first used to write an operating system and applications for internal prototypes of the later released Apple Newton computer; first official version of Apple Dylan also had s-expression based syntax; Apple collaborated with partners to develop this language | |
Emacs Lisp | 1976 | Richard Stallman | Also termed Elisp, used by GNU Emacs and XEmacs text editors to implement most editing functions built into Emacs | [14] |
EuLisp | 1990 | Statically and dynamically scoped Lisp dialect developed by a loose formation of industrial and academic Lisp users and developers across Europe; the standardizers intended to create a new Lisp "less encumbered by the past" (compared to Common Lisp), and not so minimalist as Scheme, and to integrate the object-oriented programming paradigm well | [15] | |
Franz Lisp | 1980 | Richard Fateman | Written at UC Berkeley by the students of Professor Richard J. Fateman, based largely on Maclisp and distributed with the Berkeley Software Distribution (BSD) for the Digital Equipment Corp (DEC) VAX | [16] |
Game Oriented Assembly Lisp (GOAL) | 2000s | Andy Gavin | Video game programming language developed by Andy Gavin and the Jak and Daxter team at Naughty Dog; written using Allegro Common Lisp; used in developing the full game series | [17] |
Hy | 2013 | Paul Tagliamonte | A lisp with tight integration with Python | |
Ikarus | 2007 | Abdulaziz Ghuloum | Scheme dialect | |
Interlisp | 1967 | BBN | Programming environment built around a version of Lisp language; development began in 1967 at Bolt, Beranek and Newman in Cambridge, Massachusetts as BBN LISP, which ran on PDP-10 machines running the TENEX operating system; when Danny Bobrow, Warren Teitelman, and Ronald Kaplan moved from BBN to Xerox PARC, it was renamed Interlisp | [18] |
ISLISP | 1997 | WG16 | Small core language to help bridge the gap between differing Lisp dialects | [19] |
Le Lisp | 1981 | INRIA | Designed by Jérôme Chailloux, Emmanuel St. James, INRIA | [20][21][22] |
Lisp Flavored Erlang (LFE) | 2008 | Robert Virding | Lisp dialect built on Core Erlang and the Erlang virtual machine BEAM | |
Lisp Machine Lisp | 1984 | Sometimes named Zetalisp, is a direct descendant of Maclisp; was developed in the mid to late 1970s as the systems programming language for the MIT Lisp machines | [23] | |
Lispkit Lisp | 1980 | Peter Henderson | A lexically scoped, purely functional subset of Lisp ("Pure Lisp") developed as a testbed for functional programming concepts. | [24] |
Maclisp | 1966 | Project MAC | Originated at MIT's Project MAC in late 1960s; based on Lisp 1.5; Richard Greenblatt was main developer of original codebase for the PDP-6;[25] Jon L. White was responsible for later maintenance and development | [25] |
MultiLisp | 1980s | Robert H. Halstead | Scheme dialect, extended with constructs for parallel computing, executing, and shared memory; also had some unusual garbage collection and task scheduling algorithms | [26] |
NIL | 1970s | MIT | 32-bit Lisp implementation developed at MIT; intended to be the successor to Maclisp; NIL stood for "New Implementation of LISP", and was in part a response to DECs VAX computer | [27][28] |
OpenLisp | 1988 | Christian Jullien | ISLISP compatible language with many Common Lisp extensions; runs on most modern operating systems | [29] |
Owl Lisp | 2012 | Aki Helin | Pure functional Scheme dialect; based on applicable subset of the R7RS standard; has been extended mainly with threads and the data structures needed for purely functional operation | [30] |
PicoLisp | 1988 | Alexander Burger | Open-source Lisp dialect; runs on Linux and other POSIX-compliant systems; most prominent features are simplicity and minimalism | [31] |
Portable Standard Lisp | 1980 | University of Utah | Tail-recursive dynamically bound Lisp dialect inspired by its predecessor, Standard Lisp and the Portable Lisp Compiler; it implements the Reduce computer algebra system | |
Racket | 1994 | PLT Inc. | General purpose, multi-paradigm programming language in the Lisp-Scheme family; one of its design goals is to serve as a platform for language creation, design, and implementation; it is used in many contexts such as scripting, general-purpose programming, computer science education, and research | [32][33] |
Scheme | 1970 | Guy L. Steele, Gerald Sussman |
Functional programming language with a minimalist design philosophy specifying a small standard core with powerful tools for language extension | [12] |
Scheme In One Defun (SIOD) | 1988 | George J. Carrette | Small Scheme implementation, written in C, made to embed in C programs | |
SKILL | 1990 | Cadence Design Systems | Used as a scripting language and PCell description language used in many EDA software suites by Cadence | [34] |
T | 1984 | Jonathan A. Rees, Norman I. Adams |
Scheme dialect developed in the early 1980s by Jonathan A. Rees, Kent M. Pitman, and Norman I. Adams of Yale University as an experiment in language design and implementation | [35] |
TXR | 2009 | Kaz Kylheku | Consists of a Lisp dialect (TXR Lisp) and a pattern language for processing text (TXR Pattern Language) | [36] |
Timeline
[edit]1958 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | 2020 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
LISP 1, 1.5, LISP 2(abandoned) | |||||||||||||||
Maclisp | |||||||||||||||
Interlisp | |||||||||||||||
MDL | |||||||||||||||
Lisp Machine Lisp | |||||||||||||||
Scheme | R5RS | R6RS | R7RS small | ||||||||||||
NIL | |||||||||||||||
ZIL (Zork Implementation Language) | |||||||||||||||
Franz Lisp | |||||||||||||||
Common Lisp | ANSI standard | ||||||||||||||
Le Lisp | |||||||||||||||
MIT Scheme | |||||||||||||||
XLISP | |||||||||||||||
T | |||||||||||||||
Chez Scheme | |||||||||||||||
Emacs Lisp | |||||||||||||||
AutoLISP | |||||||||||||||
PicoLisp | |||||||||||||||
Gambit | |||||||||||||||
EuLisp | |||||||||||||||
ISLISP | |||||||||||||||
OpenLisp | |||||||||||||||
PLT Scheme | Racket | ||||||||||||||
newLISP | |||||||||||||||
GNU Guile | |||||||||||||||
Visual LISP | |||||||||||||||
Clojure | |||||||||||||||
Arc | |||||||||||||||
LFE | |||||||||||||||
Hy | |||||||||||||||
Chialisp |
References
[edit]- ^ "SICP: Foreword". Archived from the original on 2001-07-27.
Lisp is a survivor, having been in use for about a quarter of a century. Among the active programming languages only Fortran has had a longer life.
- ^ "Conclusions". Archived from the original on 2014-04-03. Retrieved 2016-03-18.
- ^ Cohen, Bram. "Chialisp". Chialisp.com.
- ^ Cohen, Bram. "Bram Cohen". Twitter.
- ^ Cohen, Bram (2019-11-27). "Introducing Chialisp". Chia Network. Retrieved 2022-04-08.
- ^ "ACL2 Annotated Bibliography".
- ^ Graham, Paul. "Arc FAQ". Retrieved 2016-03-18.
- ^ "AutoLISP". Retrieved 14 April 2014.
- ^ "BBN-LISP". Interlisp family. Software Preservation Group. Retrieved 17 March 2016.
- ^ "Clojure". Clojure.org. Retrieved 2015-09-15.
- ^ a b "CLHS: About the Common Lisp HyperSpec: Authorship Information". LispWorks. Retrieved 2019-05-01.
- ^ a b Steele, Guy L. Jr. (1981). Common Lisp the Language, 2nd Ed. Digital Press. ISBN 978-1-55558-041-4.
Common Lisp is a new dialect of Lisp, a successor to MacLisp, influenced strongly by ZetaLisp and to some extent by Scheme and InterLisp.
- ^ a b "Common Lisp the Language: Type declarations".
- ^ "My Lisp Experiences and the Development of GNU Emacs". GNU. Retrieved 18 March 2016.
- ^ "An Overview of EuLisp" (PDF). www.softwarepreservation.org. Retrieved 18 March 2016.
- ^ Gabriel, Richard P (May 1985). Performance and evaluation of Lisp systems (PDF). MIT Press; Computer Systems Series. ISBN 0-262-07093-6. LCCN 85-15161.
- ^ "[Sweng-gamedev] Higher Level Languages (Was: Next Gen Multiplatform Load Balancing)". Archived from the original on 12 April 2007.
- ^ Teitelman, Warren (April 1972), "Do What I Mean", Computers and Automation: 8–11.
- ^ "Programming Language ISLISP". Archived from the original on 22 January 2016. Retrieved 18 March 2016.
- ^ Chailloux, Jérôme (1983). "LE LISP 80 version 12" (PDF). INRIA. Retrieved 16 March 2012.
- ^ Chailloux, J.; Devin, M.; Hullot, J.M. (1984). "Le_Lisp, a portable and efficient Lisp system" (PDF). INRIA. Retrieved 16 March 2012.
- ^ Chailloux, Jérôme (November 2001). Le_Lisp de l'INRIA: Le Manuel de référence. Version 14. Rocquencourt France: INRIA. p. 190.
- ^ "Lisp Machine Manual" (PDF). MIT. Retrieved 18 March 2016.
- ^ "The LispKit Manual (Volume 1)" (PDF). Oxford University. Retrieved 12 September 2022.
- ^ a b Levy, Steven (1984). Hackers: Heroes of the Computer Revolution. Doubleday. ISBN 0-385-19195-2.
- ^ Halstead, R. H. "A Language for Concurrent Symbolic Computation". Retrieved 2006-10-12.
- ^ Gabriel, Richard P (May 1985). Performance and evaluation of Lisp systems (PDF). MIT Press; Computer Systems Series. ISBN 978-0-262-07093-5. LCCN 85015161.
- ^ Steele, Guy L. Jr.; Gabriel, Richard P. "The evolution of Lisp" (PDF). Retrieved 2006-10-12.
- ^ "Eligis: OpenLisp, ISLISP, ISO Lisp". Retrieved 7 April 2018.
- ^ "Owl Lisp". Retrieved 2020-02-04.
- ^ Burger, Alexander. "Internal structures". software-lab.de. Retrieved 18 March 2016.
- ^ "Welcome to Racket". Retrieved 2011-08-15.
- ^ "Dialects of Racket and Scheme". Retrieved 2011-08-15.
- ^ Barnes, T.J. (1990). "SKILL: a CAD system extension language". Design Automation Conference, 1990. Proceedings., 27th ACM/IEEE. DAC'90. doi:10.1109/DAC.1990.114865.
- ^ "The T Project". Jonathan Rees. Retrieved 18 March 2016.
- ^ "TXR Language". Kaz Kylheku. Retrieved 31 August 2017.