Jump to content

LISP: Difference between revisions

From EDM2
Ak120 (talk | contribs)
Ak120 (talk | contribs)
mNo edit summary
Line 1: Line 1:
List processing language, one of the earliest programming language to feature a garbage collector, it was first described in 1959 with working implementations arriving in the 1960's. Popular in early AI research but is also used as a scripting language in packages such as [[Emacs]], later variants have gained functional programming features and most modern variants have also gotten some object-oriented features, but referring to any LISP variant as an object-oriented or a functional programming language is taking religious fervour a step too far.
List processing language, one of the earliest programming language to feature a garbage collector, it was first described in 1959 with working implementations arriving in the 1960's. Popular in early AI research but is also used as a scripting language in packages such as [[Emacs]], later variants have gained functional programming features and most modern variants have also gotten some object-oriented features, but referring to any LISP variant as an object-oriented or a functional programming language is taking religious fervour a step too far.


The main problem LISP originally had in gaining any mainstream acceptance as a programming language was simply performance related, while LISP was perfectly acceptable for writing small programs in, large programs could only be done cost effectively after the advent of [[virtual memory]], but that only happened in the late 60's on mainframes, in the 80's for minicomputers and workstations and in the 90's for microcomputers and by that time the LISP world had become so fragmented that it had difficulty maintaining any traction. This also lead a number of companies to release computer systems in the 1970's and 80's that were specifically designed to run LISP.
The main problem LISP originally had in gaining any mainstream acceptance as a programming language was simply performance related, while LISP was perfectly acceptable for writing small programs in, large programs could only be done cost effectively after the advent of virtual memory, but that only happened in the late 60's on mainframes, in the 80's for minicomputers and workstations and in the 90's for microcomputers and by that time the LISP world had become so fragmented that it had difficulty maintaining any traction. This also lead a number of companies to release computer systems in the 1970's and 80's that were specifically designed to run LISP.


===Common Lisp===
==Common Lisp==
A dialect of LISP that adds functional programming, object-oriented and procedural features but cuts down the language features from what was common in the 70's although not as severely as Scheme. It was originally instigated by the USA's department of defence in the early 1980's as LISP variants used by contractors were starting to become so diverse that porting of code between projects was becoming difficult. It has since become the most popular variant of the language but sometimes gets criticised for being rather large in comparison to Scheme.
A dialect of LISP that adds functional programming, object-oriented and procedural features but cuts down the language features from what was common in the 70's although not as severely as Scheme. It was originally instigated by the USA's department of defence in the early 1980's as LISP variants used by contractors were starting to become so diverse that porting of code between projects was becoming difficult. It has since become the most popular variant of the language but sometimes gets criticised for being rather large in comparison to Scheme.


===Scheme===
==Scheme==
A version of LISP introduced in 1975 that cuts down the language considerably but at the same time adds some functional features. The most popular variant of LISP for a while as it was much simpler to implement than full LISP or the later Common Lisp but its popularity has waned considerably. There is also yet another schism happening in the Scheme world, most modern versions and all OS/2 version of Scheme follow the ''Revised(5) Report on the Algorithmic Language Scheme'' or the older but largely identical ''Revised(4)'' (See Standards at the bottom of page for links), but a new ''Revised(6)'' standard from 2007 that introduces a number of incompatibilities has got a part of the Scheme community in a knot, meaning that some Scheme implementations aim at R(6) compatibility while others have declared that they will not use R(6) and continue developing from the R(5) standard.
A version of LISP introduced in 1975 that cuts down the language considerably but at the same time adds some functional features. The most popular variant of LISP for a while as it was much simpler to implement than full LISP or the later Common Lisp but its popularity has waned considerably. There is also yet another schism happening in the Scheme world, most modern versions and all OS/2 version of Scheme follow the ''Revised(5) Report on the Algorithmic Language Scheme'' or the older but largely identical ''Revised(4)'' (See Standards at the bottom of page for links), but a new ''Revised(6)'' standard from 2007 that introduces a number of incompatibilities has got a part of the Scheme community in a knot, meaning that some Scheme implementations aim at R(6) compatibility while others have declared that they will not use R(6) and continue developing from the R(5) standard.


The newest ''Revised(7)'' standard partly aims merging the R5R and R6R to a degree, the R7RS-small standard was published in 2013 and describes a subset of the language that mostly maintains the R5R semantics but takes the record types, libraries and exception handling form R6R. The full standard is still being worked on.
The newest ''Revised(7)'' standard partly aims merging the R5R and R6R to a degree, the R7RS-small standard was published in 2013 and describes a subset of the language that mostly maintains the R5R semantics but takes the record types, libraries and exception handling form R6R. The full standard is still being worked on.


===Common Lisp Object System (CLOS)===
==Common Lisp Object System (CLOS)==
The object-oriented features introduced as a component for Common Lisp although the original proposal actually predates CL. It adds an optional fully featured object model to CL but what is unusual about it is that it is bolt-on, it is in other words a layer on top of the the language rather than a language feature so a number of other LISP and Scheme variants have created or ported CLOS onto their systems as well.
The object-oriented features introduced as a component for Common Lisp although the original proposal actually predates CL. It adds an optional fully featured object model to CL but what is unusual about it is that it is bolt-on, it is in other words a layer on top of the the language rather than a language feature so a number of other LISP and Scheme variants have created or ported CLOS onto their systems as well.


===Standard LISP===
==Standard LISP==
As LISP implementations were already starting to diverge enough to make porting between systems difficult by the mid 60's, so a new informal standard was proposed in 1969 that mostly mimicked a minimalistic but fast LISP implementation done as Stanford University in the USA, this never became a popular standard on minicomputers or micros but a number of mainframe implementations followed it to take advantage of mathematical packages that had been developed on the Stanford [[IBM]] system. An implementation in [[BCPL]] called [[Cambridge Lisp]] became fairly common on some home computer systems in Europe in the latter half of the 80's as it was cheap, a variant of Cambridge Lisp re-written in [[C]] is available as an open source package. '''Portable Standard Lisp''' was a follow on to Standard Lisp that also failed to set the world on fire.
As LISP implementations were already starting to diverge enough to make porting between systems difficult by the mid 60's, so a new informal standard was proposed in 1969 that mostly mimicked a minimalistic but fast LISP implementation done as Stanford University in the USA, this never became a popular standard on minicomputers or micros but a number of mainframe implementations followed it to take advantage of mathematical packages that had been developed on the Stanford [[IBM]] system. An implementation in [[BCPL]] called [[Cambridge Lisp]] became fairly common on some home computer systems in Europe in the latter half of the 80's as it was cheap, a variant of Cambridge Lisp re-written in [[C]] is available as an open source package. '''Portable Standard Lisp''' was a follow on to Standard Lisp that also failed to set the world on fire.


==A list of OS/2 implementations of LISP==
==OS/2 Implementations==
<div style="column-count:2;-moz-column-count:2;-webkit-column-count:2">
<div style="column-count:2;-moz-column-count:2;-webkit-column-count:2">
* [[CLISP]] - Open Source - Discontinued
* [[CLISP]] - Open Source - Discontinued
Line 33: Line 33:
</div>
</div>


====Libraries====
===Libraries===
* [[Closer to MOP]] - CLOS/MOP compatibility layer - Open Source - Current.
* [[Closer to MOP]] - CLOS/MOP compatibility layer - Open Source - Current
* [[Closette]] - Meta-object protocol - Open source - Discontinued
* [[Closette]] - Meta-object protocol - Open source - Discontinued
* [[CL-XML]] - [[XML]] parser - Open source - Discontinued
* [[CL-XML]] - [[XML]] parser - Open source - Discontinued
* [[ContextL]] - Context programming extensions for [[CLOS]] - Open Source - Current.
* [[ContextL]] - Context programming extensions for [[CLOS]] - Open Source - Current
* [[Portable Common Loops]] - Object oriented abstractions - Open source - Discontinued
* [[Portable Common Loops]] - Object oriented abstractions - Open source - Discontinued
* [[Screamer]] - Nondeterministic programming - Open source - Some current development
* [[Screamer]] - Nondeterministic programming - Open source - Some current development
Line 43: Line 43:
* [[Snappy]] - Compression library - Open Source - Current.
* [[Snappy]] - Compression library - Open Source - Current.


====Foreign libraries with LISP or Scheme bindings====
===Foreign libraries with LISP or Scheme bindings===
* [[Cairo]] - 2D graphics library (CL + Scheme) - Open source - Current
* [[Cairo]] - 2D graphics library (CL + Scheme) - Open source - Current
* [[LibcURL]] - Internet URL (WWW, FTP, etc) access (LISP + Scheme) - Open Source - Current.
* [[LibcURL]] - Internet URL (WWW, FTP, etc) access (LISP + Scheme) - Open Source - Current
* [[Snappy]] - Compression lib. - Open Source - Current.
* [[Snappy]] - Compression lib. - Open Source - Current


====LISP related programmer's utilities====
===LISP related programmer's utilities===
* [[DTRACE]] - Debug tool - Open source - Discontinued.
* [[DTRACE]] - Debug tool - Open source - Discontinued
* [[Exuberant ctags]] - Creates index files out of Scheme and LISP source files - Open source - Current.
* [[Exuberant ctags]] - Creates index files out of Scheme and LISP source files - Open source - Current


====OS/2 text & programmers editors with LISP support====
====OS/2 text & programmers editors with LISP support====
* [[Boxer]] - LISP syntax highlighting support built in - Commercial - Discontinued.
* [[Boxer]] - LISP syntax highlighting support built in - Commercial - Discontinued
* [[jEdit]] - Java based - LISP and Scheme syntax highlighting built in - Current.
* [[jEdit]] - Java based - LISP and Scheme syntax highlighting built in
* [[Lugaru Epsilon]] - LISP syntax highlighting and autoindent available as a separate download. - Commercial.
* [[Lugaru Epsilon]] - LISP syntax highlighting and autoindent available as a separate download. - Commercial


====LISP source code snippets, archives and collections====
====LISP source code snippets, archives and collections====
Line 68: Line 68:
* [https://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/oop/clos/code/3d_geom.tgz 3D Geometry classes] - Simple 3d gemometry classes
* [https://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/lisp/oop/clos/code/3d_geom.tgz 3D Geometry classes] - Simple 3d gemometry classes


==A list of DOS implementations of LISP==
==DOS Implementations==
<div style="column-count:2;-moz-column-count:2;-webkit-column-count:2">
<div style="column-count:2;-moz-column-count:2;-webkit-column-count:2">
*BYSO LISP - Commercial - Discontinued
*BYSO LISP - Commercial - Discontinued
Line 133: Line 133:
===Books===
===Books===
====English====
====English====
* John R. Anderson, Albert Corbett and Brian J. Reiser: Essential Lisp - 1986 - Addison-Wesley - ISBN 0201111489
* John R. Anderson; Albert Corbett; Brian J. Reiser: ''Essential Lisp'' - Addison-Wesley 1986, ISBN 0-201-11148-9
* Timothy D. Koschmann: The Common LISP Companion - 1990 - Wiley - ISBN 0471503088
* Timothy D. Koschmann: ''The Common LISP Companion'' - Wiley 1990, ISBN 0-471-50308-8
* Patrick Henry Winston and Berthold K.P. Horn: Lisp (Third edition) - 1989 - Addison-Wesley - ISBN 0-201-08319-1
* Patrick Henry Winston; Berthold K.P. Horn: ''Lisp'' (Third edition) - Addison-Wesley 1989, ISBN 0-201-08319-1
: An older version of the book is available for [http://www.atarimania.com/documents/LISP.pdf download here] in [[PDF]] format.
: An older edition of the book is available: [http://www.atarimania.com/documents/LISP.pdf PDF]
* Guy L. Steele Jr.: [https://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html Common Lisp the Language, 2nd Edition] - Free download in [[HTML]] and [[Postscript]] format - 1990 - Digital Press - ISBN 1-55558-041-6
* Guy L. Steele Jr.: [https://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html Common Lisp the Language, 2nd Edition] - Digital Press 1990, ISBN 1-55558-041-6
* Peter Seibel: [http://www.gigamonkeys.com/book/ Practical Common Lisp] - 2005 - Apress - ISBN 978-1-59059-239-7
* Peter Seibel: [http://www.gigamonkeys.com/book/ Practical Common Lisp] - 2005 - Apress - ISBN 978-1-59059-239-7
* Harold Abelson, Gerald Jay Sussman and Julie Sussman: [https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-1.html Structure and Interpretation of Computer Programs; Second edition] - 1996 - MIT Press - In HTML fomat, also available from the publisher in [http://web.mit.edu/alexmv/6.037/sicp.pdf PDF formate here]
* Harold Abelson, Gerald Jay Sussman and Julie Sussman: [https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-1.html Structure and Interpretation of Computer Programs; Second edition] - 1996 - MIT Press - [http://web.mit.edu/alexmv/6.037/sicp.pdf PDF]
* David B. Lamkins: [https://www.psg.com/~dlamkins/sl/cover.html Successful Lisp: How to Understand and Use Common Lisp] - 2004 - Bookfix.com - ISBN 978-3937526003
* David B. Lamkins: [https://www.psg.com/~dlamkins/sl/cover.html Successful Lisp: How to Understand and Use Common Lisp] - 2004 - Bookfix.com - ISBN 978-3937526003
* David S. Touretzky: [https://www.cs.cmu.edu/~dst/LispBook/book.pdf COMMON LISP: A Gentle Introduction to Symbolic Computation] - 1990 - The Benjamin/Cummings Publishing Company - The 1990 edition is a free download in a PDF format - the revised 2013 edition by Dover has ISBN 978-0486498201
* David S. Touretzky: [https://www.cs.cmu.edu/~dst/LispBook/book.pdf COMMON LISP: A Gentle Introduction to Symbolic Computation] - 1990 - The Benjamin/Cummings Publishing Company - The 1990 edition is a free download in a PDF format - the revised 2013 edition by Dover has ISBN 978-0486498201
Line 175: Line 175:
* Linda G. DeMichiel: ''[https://www.dreamsongs.com/Files/LASC-Overview.pdf The Common Lisp Object System]''
* Linda G. DeMichiel: ''[https://www.dreamsongs.com/Files/LASC-Overview.pdf The Common Lisp Object System]''
;Meta-objects
;Meta-objects
* Chrsitophe Rhodes: ''[http://medias.ircam.fr/xf0d300 Generalizers: New Metaobjects for Generalized Dispatch]'' - Recording of a talk held at the 7th European Lisp Symposium on May 5, 2014, Ircam, Paris, France. - Also available as a [http://research.gold.ac.uk/9924/1/els-specializers.pdf paper in PDF format].
* Chrsitophe Rhodes: ''[http://medias.ircam.fr/xf0d300 Generalizers: New Metaobjects for Generalized Dispatch]'' - Recording of a talk held at the 7th European Lisp Symposium on May 5, 2014, Ircam, Paris, France. - Also available as a [http://research.gold.ac.uk/9924/1/els-specializers.pdf PDF].
;Parallel processing
;Parallel processing
* Pascal Costanza: ''[http://medias.ircam.fr/xe5f73b Parallel Programming with Lisp for Performance]'' - Recording of a talk held at the 7th European Lisp Symposium on May 5, 2014, Ircam, Paris, France. - The presentation (not the paper) is also available in a [http://www.european-lisp-symposium.org/editions/2014/costanza.pdf PDF format].
* Pascal Costanza: ''[http://medias.ircam.fr/xe5f73b Parallel Programming with Lisp for Performance]'' - Recording of a talk held at the 7th European Lisp Symposium on May 5, 2014, Ircam, Paris, France - presentation ([http://www.european-lisp-symposium.org/editions/2014/costanza.pdf PDF format])
* Ron Goldman and Richard P. Gabriel: ''[https://www.dreamsongs.com/Files/hicss.pdf Qlisp: Parallel Processing in Lisp]'' - Originally published in IEEE Software, Volume:6 , Issue: 4, Page 51 ~ 59. ISSN 0740-7459
* Ron Goldman and Richard P. Gabriel: ''[https://www.dreamsongs.com/Files/hicss.pdf Qlisp: Parallel Processing in Lisp]'' - Originally published in IEEE Software, Volume:6 , Issue: 4, Page 51 ~ 59. ISSN 0740-7459
* Kinson Ho: ''[http://nma.berkeley.edu/ark:/28722/bk0005n4s2k High-Level Abstractions for Symbolic Parallel Programming (Parallel Lisp Hacking Made Easy)]'' - Originally published in June 1994 as Report No. UCB//CSD-94-816 by the Computer Science Division (EECS) of the University of California.
* Kinson Ho: ''[http://nma.berkeley.edu/ark:/28722/bk0005n4s2k High-Level Abstractions for Symbolic Parallel Programming (Parallel Lisp Hacking Made Easy)]'' - Originally published in June 1994 as Report No. UCB//CSD-94-816 by the Computer Science Division (EECS) of the University of California.
Line 218: Line 218:
* William Clinger and Jonathan Rees (Editors): [http://people.csail.mit.edu/jaffer/r4rs_toc.html Revised(4) Report on the Algorithmic Language Scheme] - ACM Lisp Pointers IV (July-September 1991).
* William Clinger and Jonathan Rees (Editors): [http://people.csail.mit.edu/jaffer/r4rs_toc.html Revised(4) Report on the Algorithmic Language Scheme] - ACM Lisp Pointers IV (July-September 1991).
* Richard Kelsey, William Clinger and Jonathan Rees (Editors): [http://people.csail.mit.edu/jaffer/r5rs_toc.html Revised(5) Report on the Algorithmic Language Scheme] - Higher-Order and Symbolic Computation Volume 11, Issue 1, August 1998
* Richard Kelsey, William Clinger and Jonathan Rees (Editors): [http://people.csail.mit.edu/jaffer/r5rs_toc.html Revised(5) Report on the Algorithmic Language Scheme] - Higher-Order and Symbolic Computation Volume 11, Issue 1, August 1998
* Michael Sperber, R. Kent Dybvig, Matthew Flatt, Anton van Straaten(Editors): [http://www.r6rs.org/final/r6rs.pdf Revised(6) Report on the Algorithmic Language Scheme] - 2007
* Michael Sperber, R. Kent Dybvig, Matthew Flatt, Anton van Straaten(Editors): [http://www.r6rs.org/final/r6rs.pdf Revised(6) Report on the Algorithmic Language Scheme] - 2007
: Note, this standard is quite incompatible with Revised(5) in places and therefore not widely used.
:Note, this standard is quite incompatible with Revised(5) in places and therefore not widely used.
* [http://trac.sacrideo.us/wg/wiki/R7RSHomePage Revised(6) Report on the Algorithmic Language Scheme] - R7RS-small 2013 - R7RS-large unfinished.
* [http://trac.sacrideo.us/wg/wiki/R7RSHomePage Revised(6) Report on the Algorithmic Language Scheme] - R7RS-small 2013 - R7RS-large unfinished.
; Common LISP Object System
; Common LISP Object System
* The original ''Common Lisp Object System Specification'' was written by Daniel G. Bobrow, Linda G. DeMichiel, Richard P. Gabriel, Sonya E. Keene, Gregor Kiczales, and David A. Moon; and was published in draft form on June 15, 1988. It is available in two parts, namely ''[https://www.dreamsongs.com/Files/concepts.pdf 1. Programmer Interface Concepts]'' and ''[https://www.dreamsongs.com/Files/Functions.pdf 2. Functions in the Programmer Interface]''.
* The original ''Common Lisp Object System Specification'' was written by Daniel G. Bobrow, Linda G. DeMichiel, Richard P. Gabriel, Sonya E. Keene, Gregor Kiczales, and David A. Moon; and was published in draft form on June 15, 1988. It is available in two parts, namely ''[https://www.dreamsongs.com/Files/concepts.pdf 1. Programmer Interface Concepts]'' and ''[https://www.dreamsongs.com/Files/Functions.pdf 2. Functions in the Programmer Interface]''.


[[Category:Programming Languages]]
[[Category:Programming Languages]][[Category:LISP]]
[[Category:LISP]]

Revision as of 02:42, 25 January 2017

List processing language, one of the earliest programming language to feature a garbage collector, it was first described in 1959 with working implementations arriving in the 1960's. Popular in early AI research but is also used as a scripting language in packages such as Emacs, later variants have gained functional programming features and most modern variants have also gotten some object-oriented features, but referring to any LISP variant as an object-oriented or a functional programming language is taking religious fervour a step too far.

The main problem LISP originally had in gaining any mainstream acceptance as a programming language was simply performance related, while LISP was perfectly acceptable for writing small programs in, large programs could only be done cost effectively after the advent of virtual memory, but that only happened in the late 60's on mainframes, in the 80's for minicomputers and workstations and in the 90's for microcomputers and by that time the LISP world had become so fragmented that it had difficulty maintaining any traction. This also lead a number of companies to release computer systems in the 1970's and 80's that were specifically designed to run LISP.

Common Lisp

A dialect of LISP that adds functional programming, object-oriented and procedural features but cuts down the language features from what was common in the 70's although not as severely as Scheme. It was originally instigated by the USA's department of defence in the early 1980's as LISP variants used by contractors were starting to become so diverse that porting of code between projects was becoming difficult. It has since become the most popular variant of the language but sometimes gets criticised for being rather large in comparison to Scheme.

Scheme

A version of LISP introduced in 1975 that cuts down the language considerably but at the same time adds some functional features. The most popular variant of LISP for a while as it was much simpler to implement than full LISP or the later Common Lisp but its popularity has waned considerably. There is also yet another schism happening in the Scheme world, most modern versions and all OS/2 version of Scheme follow the Revised(5) Report on the Algorithmic Language Scheme or the older but largely identical Revised(4) (See Standards at the bottom of page for links), but a new Revised(6) standard from 2007 that introduces a number of incompatibilities has got a part of the Scheme community in a knot, meaning that some Scheme implementations aim at R(6) compatibility while others have declared that they will not use R(6) and continue developing from the R(5) standard.

The newest Revised(7) standard partly aims merging the R5R and R6R to a degree, the R7RS-small standard was published in 2013 and describes a subset of the language that mostly maintains the R5R semantics but takes the record types, libraries and exception handling form R6R. The full standard is still being worked on.

Common Lisp Object System (CLOS)

The object-oriented features introduced as a component for Common Lisp although the original proposal actually predates CL. It adds an optional fully featured object model to CL but what is unusual about it is that it is bolt-on, it is in other words a layer on top of the the language rather than a language feature so a number of other LISP and Scheme variants have created or ported CLOS onto their systems as well.

Standard LISP

As LISP implementations were already starting to diverge enough to make porting between systems difficult by the mid 60's, so a new informal standard was proposed in 1969 that mostly mimicked a minimalistic but fast LISP implementation done as Stanford University in the USA, this never became a popular standard on minicomputers or micros but a number of mainframe implementations followed it to take advantage of mathematical packages that had been developed on the Stanford IBM system. An implementation in BCPL called Cambridge Lisp became fairly common on some home computer systems in Europe in the latter half of the 80's as it was cheap, a variant of Cambridge Lisp re-written in C is available as an open source package. Portable Standard Lisp was a follow on to Standard Lisp that also failed to set the world on fire.

OS/2 Implementations

Libraries

  • Closer to MOP - CLOS/MOP compatibility layer - Open Source - Current
  • Closette - Meta-object protocol - Open source - Discontinued
  • CL-XML - XML parser - Open source - Discontinued
  • ContextL - Context programming extensions for CLOS - Open Source - Current
  • Portable Common Loops - Object oriented abstractions - Open source - Discontinued
  • Screamer - Nondeterministic programming - Open source - Some current development
  • SLIB Portable Scheme Library - Portable version of Scheme in a library form - Open Source - Current.
  • Snappy - Compression library - Open Source - Current.

Foreign libraries with LISP or Scheme bindings

  • Cairo - 2D graphics library (CL + Scheme) - Open source - Current
  • LibcURL - Internet URL (WWW, FTP, etc) access (LISP + Scheme) - Open Source - Current
  • Snappy - Compression lib. - Open Source - Current

LISP related programmer's utilities

  • DTRACE - Debug tool - Open source - Discontinued
  • Exuberant ctags - Creates index files out of Scheme and LISP source files - Open source - Current

OS/2 text & programmers editors with LISP support

  • Boxer - LISP syntax highlighting support built in - Commercial - Discontinued
  • jEdit - Java based - LISP and Scheme syntax highlighting built in
  • Lugaru Epsilon - LISP syntax highlighting and autoindent available as a separate download. - Commercial

LISP source code snippets, archives and collections

Small programs or routines that you can integrate into your own programs or study to learn from, but are not delivered in library form.

DOS Implementations

  • BYSO LISP - Commercial - Discontinued
  • ECoLisp - Open Source - Sort of current
  • Expert LISP - Commercial - Discontinued
  • Golden Common-LISP - Commercial - Current
  • Intellect-UL LISP
  • IQLISP - Commercial - Discontinued
  • Kyoto Common Lisp - Open Source - Discontinued
  • Le-Lisp - Commercial - Discontinued
  • Microsoft LISP - Commercial - Discontinued
  • muLISP - Commercial - Discontinued
  • Norell LISP/88 - Commercial - Discontinued
  • PC-LISP 3.0 - Shareware
  • RefLisp - Open source - Discontinued
  • SCM - Open source - Current
  • Star Sapphire Common LISP - Shareware - Still available but no longer developed
  • TLC LISP - Commercial - Discontinued
  • Texas Instruments PC SCHEME - Commercial - Discontinued
  • Waltz LISP - Commercial - Discontinued
  • UO-LISP - Commercial - Discontinued
  • XLISP - Open source - Discontinued

Libraries

  • Closette - Meta-object protocol - Open source - Discontinued
  • Dblisp - dBase II/II database access for GCL - Commercial - Discontinued
  • Portable Common Loops - Object oriented abstractions - Open source - Discontinued
  • Screamer - Nondeterministic programming - Open source - Some current development
  • SLIB Portable Scheme Library - Portable version of Scheme in a library form - Open Source - Current

Closely related languages

  • Fjölnir - Open source - Discontinued

DOS text & programmers editors with LISP support

  • Boxer - LISP syntax highlighting support built in - Commercial - Discontinued

A list of LISP implementations that run under WinOS/2

  • Apteryx Lisp 1.04 - shareware
  • Golden Common-LISP - Commercial - Current
  • Goldworks - Commercial - Current
  • IBM Common Lisp - As front-end only - Commercial - Discontinued
  • RefLisp - Open source - Discontinued
  • SCM - Open source - Discontinued

Libraries

A list of LISP implementations that run under Java

Related languages
  • Clojure - Functional language that uses LISP syntax.

A list of LISP implementations in JavaScript

  • Biwa Scheme - Conforms to Revised(6) - Open source - Current
Related languages

Publications

Books

English

  • John R. Anderson; Albert Corbett; Brian J. Reiser: Essential Lisp - Addison-Wesley 1986, ISBN 0-201-11148-9
  • Timothy D. Koschmann: The Common LISP Companion - Wiley 1990, ISBN 0-471-50308-8
  • Patrick Henry Winston; Berthold K.P. Horn: Lisp (Third edition) - Addison-Wesley 1989, ISBN 0-201-08319-1
An older edition of the book is available: PDF
CLOS, MOP and PCL
  • Gregor Kiczales, Jim des Rivieres and Daniel G. Bobrow: The Art of the Metaobject Protocol - 1991 - MIT Press - ISBN 026261074
  • Sonya E. Keene: Object-Oriented Programming in Common Lisp: A Programmer's Guide to CLOS" - 1989 - Addison-Wesley - ISBN 0-201-17589-4
  • Jo A. Lawless and Molly M. Miller: Understanding CLOS: the Common Lisp Object System - 1991 - Digital Press - ISBN 013717232X
  • Robert R. Kessler and Amy R. Petajan: LISP, Objects, and Symbolic Programming - 1988 - Scott, Foresman and Company - ISBN 0673397734
  • Andreas Paepcke: Object-Oriented Programming: the CLOS Perspective - 1993 - MIT Press - ISBN 0-262-16136-2

German

  • Ernst D. Schmitter: Praktische Einführung in LISP. - 1987 - Hofacker - ISBN 3-88963-229-7
  • Peter P. Bothner und Wolf-Michael Kähler: Programmieren in LISP: Eine elementare und anwendungsorientierte Einführung - 1993 - Vieweg+Teubner Verlag - ISBN 3528053232

French

Articles, talks, presentations and papers

Slightly misleading title, the talk is more about the package manager ASDF than scripting per se.
  • Pascal Costanza: How to Make Lisp More Special - Originally published in the Proceedings of the International Lisp Conference 2005, Stanford, California, USA, June 19-22, 2005.
  • Richard Barber & George Imlah: Delivering the Goods with Lisp. Communications of the ACM 34(9); pages 61-63 - 1991
CLOS, MOP and PCL
Meta-objects
Parallel processing
Introductory articles and mini-tutorials

Links

Tutorials

Standards

Standard Lisp
  • Jed Marti, A. C. Hearn, M. L. Griss and C. Griss: The Standard Lisp Report - ACM SIGPLAN Notices 14, No 10 (1979), pages 48~68. - This is what became Portable (Utah) Standard Lisp.
Common Lisp
  • Guy L. Steele Jr. et al.: Common Lisp the Language - 1984 - Digital Press - ISBN 093237641X
This is a publication of the Common Lisp Reference Manual written for the DoD with some additional text and clarifications, a newer version is avaiable for download here and due to the number of errors in the original publication the Kyoto report below is considered the de facto standard.
Since the original Common Lisp proposal by the Department of Defence had a large number of errors in it, this document is commonly used as a definition of the original Common Lisp since it clears up most of the errors.
  • ANSI Common Lisp - ANSI INCITS 226-1994 (X3.226-1994)
Scheme
The only formal standard for Scheme, largely ignored.
Note, this standard is quite incompatible with Revised(5) in places and therefore not widely used.
Common LISP Object System