LISP is a multi-paradigm family of programming languages. It was and is popular in artificial intelligence research, but also for teaching programming fundamentals in elite schools.
“Lisp is a family of computer programming languages with a long history and a distinctive, fully parenthesized syntax. Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today; only Fortran is older. Like Fortran, Lisp has changed a great deal since its early days, and a number of dialects have existed over its history. Today, the most widely known general-purpose Lisp dialects are Common Lisp and Scheme. (Wikipedia, retrieved 17:56, 10 April 2008 (UTC))”
“Common Lisp is well suited to large programming projects and explorative programming. The language has a dynamic semantics which distinguishes it from languages such as C and Ada. It features automatic memory management, an interactive incremental development environment, a module system, a large number of powerful data structures, a large standard library of useful functions, a sophisticated object system supporting multiple inheritance and generic functions, an exception system, user-defined types and a macro system which allows programmers to extend the language. CMUCL, retrieved 17:56, 10 April 2008 (UTC)).”
Today, there are still several popular flavors of LISP, e.g.
- CommonLISP (the dominant LISP before the 90' "AI winter"
- EmacsLISP (to program the Emacs editor)
Furthermore, there exist libraries for various programming languages and that implement subsets of LISP or Scheme or implement at least some features.
2 In education
- A large part (or even the majority) of Intelligent tutoring systems have been programmed in LISP or on top of expert system engines programmed in LISP.
- Lisp-based web servers can be used to implement adaptive hypertext systems.
3 Tutorials and documentation
3.1 Short introductions and overviews
- What made LISP different, by Paul Graham, 2002.
- Crossing borders: The beauty of Lisp by Bruce Tate, IBM DeveloperWorks, Feb 2007.
- Lisp (programming language) (Wikipedia)
3.2 Beginner's tutorials
- A Quickstart to Common Lisp by Nick Gibson.
- Lisp for the Web by Adam Petersen, April 2008
- The Common Lisp Cookbook, a “book containing recipes and other information about the preparation and cooking of food. Now with extra Lisp”. Free and online.
- Peter Seibel (2005). Practical Common Lisp, Apress. (free online version of the ISBN 1590592395 book)
- Paul Graham On LISP is a comprehensive study of advanced Lisp techniques, with bottom-up programming as the unifying theme. (Free online version of Prentice Hall, 1993, 432 pages, paperback. ISBN 0130305529).
3.4 LISP and web
4.1 Common LISP implementations
There exist a number of good Common Lisp implementations, including a few free ones (updated 17/2020).
- Steel Bank Common Lisp “is a high performance Common Lisp compiler. It is open source / free software, with a permissive license. In addition to the compiler and runtime system for ANSI Common Lisp, it provides an interactive environment including a debugger, a statistical profiler, a code coverage tool, and many other extensions.”. A branch from CMUCL, it runs on a number of POSIX platforms, and experimentally on Windows.
- CLISP. “CLISP includes an interpreter, a compiler, a debugger, CLOS, MOP, a foreign language interface, i18n, POSIX and Perl regular expressions, a socket interface, fast bignums, arbitrary precision floats, and more.”. Runs under Linux, MacOS X and Windows (via cywin)
- CMUCL. A free implementation of the Common Lisp programming language which runs on most major Unix platforms.
- GCL The GNU implementation of Common Lisp.
- Clozure CL “(often called CCL for short) is a free Common Lisp implementation with a long history. Some distinguishing features of the implementation include fast compilation speed, native threads, a precise, generational, compacting garbage collector, and a convenient foreign-function interface.”
- Allegro Common Lisp (Franz Inc.)
- LispWorks. A free (heap and time limited) version is available for personal use.
4.2 Webservers in LISP or Scheme
- CL-HTTP was developped at MIT under the lead of J. Mallery. The system seems to be no longer maintained.
- araneida. Araneida is a fairly small free extensible Web server for SBCL and many other Common Lisp implementations .
- Hunchentoot The Common Lisp web server formerly known as TBNL
- Mod_lisp to run a lisp with Apache.
- AllegroServe. a Web HTTP/Application Server. Free (LLGPL), made by John Foderaro (Franz Inc.)
- See also [CLIKI
4.4 Various links
See CLIKI. It “contains resources for learning about and using the programming language Common Lisp, and information about DFSG-compliant free software implemented in Common Lisp.”
- Cliki The common lisp wiki. Probably the best overal resource currently. Sorted by resources type or application domain.
- Lisp-lang.org. A tutorial.
- Lisperati Funny and serious.
5.1 Collections of links
- LISP Links (Paul Graham).
- Dynamic Languages Strike Back by Steve Yegge, May 2008.