Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Lisp (programming language)
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Major dialects== [[Common Lisp]] and [[Scheme (programming language)|Scheme]] represent two major streams of Lisp development. These languages embody significantly different design choices. [[Common Lisp]] is a successor to [[Maclisp]]. The primary influences were [[Lisp Machine Lisp]], Maclisp, [[NIL (programming language)|NIL]], [[S-1 Lisp]], [[Spice Lisp]], and Scheme.<ref name="uMuJD">Chapter 1.1.2, History, ANSI CL Standard</ref> It has many of the features of Lisp Machine Lisp (a large Lisp dialect used to program [[Lisp Machine]]s), but was designed to be efficiently implementable on any personal computer or workstation. Common Lisp is a general-purpose programming language and thus has a large language standard including many built-in data types, functions, macros and other language elements, and an object system ([[Common Lisp Object System]]). Common Lisp also borrowed certain features from Scheme such as [[lexical scoping]] and [[lexical closure]]s. Common Lisp implementations are available for targeting different platforms such as the [[LLVM]],<ref name="hEWIZ">[https://www.cliki.net/Clasp] Clasp is a Common Lisp implementation that interoperates with C++ and uses LLVM for [[just-in-time compilation]] (JIT) to native code.</ref> the [[Java virtual machine]],<ref name="vBfvI">[https://common-lisp.net/project/armedbear/] "Armed Bear Common Lisp (ABCL) is a full implementation of the Common Lisp language featuring both an interpreter and a compiler, running in the JVM"</ref> x86-64, PowerPC, Alpha, ARM, Motorola 68000, and MIPS,<ref name="za6Q8">[https://common-lisp.net/~dlw/LispSurvey.html] {{Webarchive|url=https://web.archive.org/web/20180622083812/https://common-lisp.net/~dlw/LispSurvey.html|date=2018-06-22}} Common Lisp Implementations: A Survey</ref> and operating systems such as Windows, macOS, Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Dragonfly BSD, and Heroku.<ref name="QX6kG">[https://www.cliki.net/Common+Lisp+implementation] Comparison of actively developed Common Lisp implementations</ref> Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by [[Guy L. Steele, Jr.]] and [[Gerald Jay Sussman]]. It was designed to have exceptionally clear and simple semantics and few different ways to form expressions. Designed about a decade earlier than Common Lisp, [[Scheme (programming language)|Scheme]] is a more minimalist design. It has a much smaller set of standard features but with certain implementation features (such as [[tail-call optimization]] and full [[continuation]]s) not specified in Common Lisp. A wide variety of programming paradigms, including imperative, functional, and message passing styles, find convenient expression in Scheme. Scheme continues to evolve with a series of standards (Revised<sup>n</sup> Report on the Algorithmic Language Scheme) and a series of [[Scheme Requests for Implementation]]. [[Clojure]] is a dialect of Lisp that targets mainly the [[Java virtual machine]], and the [[Common Language Runtime]] (CLR), the [[Python (programming language)|Python]] VM, the Ruby VM [[YARV]], and compiling to [[JavaScript]]. It is designed to be a pragmatic general-purpose language. Clojure draws considerable influences from [[Haskell]] and places a very strong emphasis on immutability.<ref name="clojure-immutability">[http://www.infoq.com/articles/in-depth-look-clojure-collections An In-Depth Look at Clojure Collections], Retrieved 2012-06-24</ref> Clojure provides access to Java frameworks and libraries, with optional type hints and [[type inference]], so that calls to Java can avoid reflection and enable fast primitive operations. Clojure is not designed to be backwards compatible with other Lisp dialects.<ref name="f6C82">{{cite web |title=Clojure rational |url=https://clojure.org/about/rationale |access-date=27 August 2019 |quote=Clojure is a Lisp not constrained by backwards compatibility}}</ref> Further, Lisp dialects are used as [[scripting language]]s in many applications, with the best-known being [[Emacs Lisp]] in the [[Emacs]] editor, [[AutoLISP]] and later [[Visual Lisp]] in [[AutoCAD]], Nyquist in [[Audacity (audio editor)|Audacity]], and Scheme in [[LilyPond]]. The potential small size of a useful Scheme interpreter makes it particularly popular for embedded scripting. Examples include [[SIOD]] and [[TinyScheme]], both of which have been successfully embedded in the [[GIMP]] image processor under the generic name "Script-fu".<ref name="script-fu">[http://www.gimp.org/docs/script-fu-update.html Script-fu In GIMP 2.4], Retrieved 2009-10-29</ref> LIBREP, a Lisp interpreter by John Harper originally based on the [[Emacs Lisp]] language, has been embedded in the [[Sawfish (window manager)|Sawfish]] [[window manager]].<ref name="librep">[http://sawfish.wikia.com/wiki/Librep librep] at Sawfish Wikia, retrieved 2009-10-29</ref> ===Standardized dialects=== Lisp has officially standardized dialects: [[Scheme (programming language)#R6RS|R6RS Scheme]], [[Scheme (programming language)#R7RS|R7RS Scheme]], IEEE Scheme,<ref name="LQgpj">{{cite web |url=https://standards.ieee.org/ieee/1178/1787/ |website=IEEE 1178-1990 - IEEE Standard for the Scheme Programming Language |access-date=27 August 2019 |title=IEEE Scheme}}</ref> [[ANSI Common Lisp]] and ISO [[ISLISP]].
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Lisp (programming language)
(section)
Add topic