Theprogramming languageLisp is the second-oldesthigh-level programming language with direct descendants and closely relateddialects still in widespread use today. The languageFortran is older by one year.[1][2] Lisp, like Fortran, has changed a lot since its early days, and manydialects have existed over its history. Today, the most widely known general-purpose Lisp dialects areCommon Lisp andScheme.
Language | Year begun | Created by (at) | Comments | References |
---|---|---|---|---|
ACL2 | 1990 | Robert Boyer, J Moore, Matt Kaufmann | A Computational Logic for Applicative Common Lisp consists of aprogramming language, an extensible theory in afirst-order logic, and a mechanicaltheorem prover | [3] |
Arc | 2008 | Paul Graham | Dialect of Lisp developed byPaul Graham andRobert Morris | [4] |
AutoLISP | 1986 | David Betz | Built to include and use with the full version ofAutoCAD and its derivatives | [5] |
BBN LISP | 1966 | BBN | Based onL. Peter Deutsch's Lisp implementation forPDP-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 | [6] |
Chez Scheme | 1985 | R. Kent Dybvig | Scheme dialect | |
Chialisp | 2019 | Bram Cohen | Lisp-like language, focus on security and auditability; commonly used onChia blockchain to lock funds in smart coins until spent and released by their owner, enabling behavior similar to asmart contract | [7][8][9] |
Chicken | 2000 | Felix Winkelmann | Scheme dialect | |
Clojure | 2007 | Rich Hickey | Lisp dialect, emphasizesfunctional programming; runs onJava virtual machine,Common Language Runtime, andJavaScript engines; like other Lisps, treats code as data (homoiconicity) and has amacro system | [10] |
ANSICommon Lisp | 1994 | ANSIX3J13 committee | Common Lisp enhanced and standardized, published inANSI standard document ANSI INCITS 226-1994; to the features of Common Lisp, it adds theloop macro, and theCommon Lisp Object System (CLOS) to provideobject-oriented programming paradigm withmultiple 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", byGuy L. Steele,[12] developed as a standardized and improved successor ofMaclisp; statically and dynamicallyscoped; strongly-typed, allows (optional) type declarations;[13] separate namespaces for functions versus data variables, a trait often namedLisp-2;object-oriented programming is possible via libraries such asFlavors,CommonLOOPS, and later CLOS; treats code as data (homoiconicity) and has amacro system; Thereader is extensible viareader 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 hads-expression based syntax; Apple collaborated with partners to develop this language | |
Emacs Lisp | 1976 | Richard Stallman | Also termed Elisp, used byGNU Emacs andXEmacstext editors to implement most editing functions built into Emacs | [14] |
EuLisp | 1990 | Statically and dynamicallyscoped Lisp dialect developed by a loose formation of industrial and academic Lisp users and developers across Europe; thestandardizers intended to create a new Lisp "less encumbered by the past" (compared toCommon Lisp), and not sominimalist asScheme, and to integrate theobject-oriented programming paradigm well | [15] | |
Franz Lisp | 1980 | Richard Fateman | Written atUC Berkeley by the students of ProfessorRichard J. Fateman, based largely onMaclisp and distributed with theBerkeley Software Distribution (BSD) for the Digital Equipment Corp (DEC)VAX | [16] |
Game Oriented Assembly Lisp (GOAL) | 2000s | Andy Gavin | Video game programming language developed byAndy Gavin and theJak and Daxter team atNaughty Dog; written usingAllegro Common Lisp; used in developing the full game series | [17] |
Hy | 2013 | Paul Tagliamonte | A lisp with tight integration withPython | |
Ikarus | 2007 | Abdulaziz Ghuloum | Scheme dialect | |
Interlisp | 1967 | BBN | Programming environment built around a version of Lisp language; development began in 1967 atBolt, Beranek and Newman inCambridge, Massachusetts asBBN LISP, which ran onPDP-10 machines running theTENEX operating system; whenDanny Bobrow,Warren Teitelman, andRonald Kaplan moved from BBN toXerox 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 CoreErlang and the Erlang virtual machineBEAM | |
Lisp Machine Lisp | 1984 | Sometimes named Zetalisp, is a direct descendant ofMaclisp; was developed in the mid to late 1970s as the systems programming language for theMITLisp 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 atMIT'sProject MAC in late 1960s; based onLisp 1.5;Richard Greenblatt was main developer of original codebase for thePDP-6;[25] Jon L. White was responsible for later maintenance and development | [25] |
MultiLisp | 1980s | Robert H. Halstead | Scheme dialect, extended with constructs forparallel computing, executing, andshared memory; also had some unusualgarbage collection and task scheduling algorithms | [26] |
NIL | 1970s | MIT | 32-bit Lisp implementation developed atMIT; intended as successor toMaclisp; NIL stood forNew Implementation of LISP, and was in part a response toDECsVAX computer | [27][28] |
OpenLisp | 1988 | Christian Jullien | ISLISP compatible language with manyCommon Lisp extensions; runs on most modern operating systems | [29] |
Owl Lisp | 2012 | Aki Helin | Pure functionalScheme 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 onLinux and otherPOSIX-compliant systems; most prominent features are simplicity andminimalism | [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 theReduce 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 asscripting, general-purpose programming, computer science education, and research | [32][33] |
Scheme | 1970 | Guy L. Steele, Gerald Sussman | Functional programming language with aminimalist 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 inC language, made to embed in C programs | |
SKILL | 1990 | Cadence Design Systems | Used as ascripting language andPCell description language used in manyEDA 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 ofYale 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] |
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 | |||||||||||||||
muLisp | |||||||||||||||
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 |
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.
Common Lisp is a new dialect of Lisp, a successor to MacLisp, influenced strongly by ZetaLisp and to some extent by Scheme and InterLisp.