LISP: Difference between revisions
m (using an external editor) |
m (using an external editor) |
||
Line 5: | Line 5: | ||
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 multi-paradigm family of programming languages. It was and is popular in artificial intelligence research, but also for teaching programming fundamentals in elite schools. | ||
{{quotation|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. ([http://en.wikipedia.org/wiki/Lisp_%28programming_language%29 Wikipedia], retrieved 17: | {{quotation|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. ([http://en.wikipedia.org/wiki/Lisp_%28programming_language%29 Wikipedia], retrieved 17:54, 10 April 2008 (UTC))}} | ||
{{quotation|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.[ http://www.cons.org/cmucl/ CMUCL], retrieved 17: | {{quotation|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.[ http://www.cons.org/cmucl/ CMUCL], retrieved 17:54, 10 April 2008 (UTC)).}} | ||
On a personal note: LISP is the only programming language, the [User:Daniel K. Schneider|main contributor] to this Wiki ever liked. Same is true for a special purpose PC I worked with in the late eighties, a [http://en.wikipedia.org/wiki/Symbolics symblics 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 ... | On a personal note: LISP is the only programming language, the [User:Daniel K. Schneider|main contributor] to this Wiki ever liked. Same is true for a special purpose PC I worked with in the late eighties, a [http://en.wikipedia.org/wiki/Symbolics symblics 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 ... | ||
Line 55: | Line 55: | ||
=== Webservers in LISP or Scheme === | === Webservers in LISP or Scheme === | ||
* [http://www.cl-http.org:8001/cl-http/ CL-HTTP] | |||
* [http://weitz.de/hunchentoot/ HUNCHENTOOT] The Common Lisp web server formerly known as TBNL | * [http://weitz.de/hunchentoot/ HUNCHENTOOT] The Common Lisp web server formerly known as TBNL | ||
* [http://www.fractalconcept.com/asp/l3e/sdataQGnvOIUXZNjDDM==/sdataQuvY9x3g$ecX Mod_lisp] to run a lisp with Apache. | * [http://www.fractalconcept.com/asp/l3e/sdataQGnvOIUXZNjDDM==/sdataQuvY9x3g$ecX Mod_lisp] to run a lisp with Apache. | ||
* AllegroServe | |||
== Links == | == Links == |
Revision as of 19:54, 10 April 2008
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:54, 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.[ http://www.cons.org/cmucl/ CMUCL], retrieved 17:54, 10 April 2008 (UTC)).”
On a personal note: LISP is the only programming language, the [User:Daniel K. Schneider|main contributor] to this Wiki ever liked. Same is true for a special purpose PC I worked with in the late eighties, a symblics 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 ...
Today, there are still several popular flavors of LISP, e.g.
- CommonLISP (the dominant LISP befor 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
Short introductions
- What made LISP different, by Paul Graham, 2002.
- Crossing borders: The beauty of Lisp by Bruce Tate, IBM DeveloperWorks, Feb 2007.
Beginner's tutorials
- A Quickstart to Common Lisp by Nick Gibson.
Books
- 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).
LISP and web
Software
Common LISP implementations
- 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 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.
Webservers in LISP or Scheme
- HUNCHENTOOT The Common Lisp web server formerly known as TBNL
- Mod_lisp to run a lisp with Apache.
- AllegroServe
Links
- Lisp (programming language) (Wikipedia)
- Lisperati Funny and serious.
Collections of links
- LISP Links (Paul Graham).