LISP: Difference between revisions

The educational technology and digital learning wiki
Jump to navigation Jump to search
mNo edit summary
Line 52: Line 52:
=== Common LISP implementations ===
=== Common LISP implementations ===


* [http://www.cons.org/cmucl/ CMUCL]. a free implementation of the Common Lisp programming language which runs on most major Unix platforms.
There exist a number of good Common Lisp implementations, including a few free ones (updated 17/2020).


* [http://www.cliki.net/SBCL Steel Bank Common Lisp] (SBCL) open source / free software Common Lisp implementation. this is a fork of CMUCL. Free and high performance.
'''Free implementations'''
 
* [http://www.sbcl.org/ Steel Bank Common Lisp] {{quotation|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.
 
* [https://clisp.sourceforge.io/ CLISP]. {{quotation|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)
 
* [http://www.cons.org/cmucl/ CMUCL]. A free implementation of the Common Lisp programming language which runs on most major Unix platforms.


* [http://www.gnu.org/software/gcl/ GCL] The GNU implementation of Common Lisp.
* [http://www.gnu.org/software/gcl/ GCL] The GNU implementation of Common Lisp.


* [http://trac.clozure.com/openmcl Clozure CL] is an open source Common Lisp implementation that runs on PowerPC hardware under Mac OS X and LinuxPPC, and on x86-64 hardware under Linux, Mac OS X, and FreeBSD.
* [https://ccl.clozure.com/ Clozure CL] {{quotation|(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.}}
 
'''Commercial'''
 
* [https://franz.com/products/allegro-common-lisp/ Allegro Common Lisp] (Franz Inc.)
* [http://www.lispworks.com/ LispWorks]. A free (heap and time limited) version is available for personal use.


=== Webservers in LISP or Scheme ===
=== Webservers in LISP or Scheme ===

Revision as of 12:49, 17 September 2020

Draft

Definition

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)).”

On a personal note: LISP is the only programming language, the main contributor to this Wiki ever liked. Same is true for a special purpose PC I worked with in the late eighties, a Symbolics 3620. It was the future in many ways. I started this page because I do teach some more recent stuff like JavaScript or PHP basics to non-programmers and sometimes (like today) I just wonder why those languages are so ugly and so unreliable compared to what we had 20 years ago and after some googling I found out that LISP and even AI is well alive and maybe even coming back a bit. Maybe I should trash PHP teaching at TECFA and go for Scheme instead :)

Today, there are still several popular flavors of LISP, e.g.

  • CommonLISP (the dominant LISP before the 90' "AI winter"
  • Scheme
  • 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.

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.

Tutorials and documentation

Short introductions and overviews

Beginner's tutorials

Books

  • 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).

LISP and web

Software

Common LISP implementations

There exist a number of good Common Lisp implementations, including a few free ones (updated 17/2020).

Free implementations

  • 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.”

Commercial

Webservers in LISP or Scheme

  • CL-HTTP developped at MIT under the lead of J. Mallery. Free (but restricted copyright). The free version runs on various systems and LISPs.
  • 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
  • AllegroServe. a Web HTTP/Application Server. Free (LLGPL), made by John Foderaro (Franz Inc.)

Repositories

Various

This is totally uncomplete and will remain so. See CLIKI instead, e.g.

  • Wilbur Semantic Web Toolkit for CLOS. Wilbur is Nokia Research Center's toolkit for programming Semantic Web applications that use RDF (as well as XML and/or DAML+OIL), written in Common Lisp.
  • CL-XML An XML library for CL. The modules perform parsing and serialization between XML, XML Query, and XML Path expressions and DOM-compatible CLOS instances.


Links

  • Cliki The common lisp wiki. Probably the best overal resource currently. Sorted by resources type or application domain.

Collections of links

Opinions