Lisp: Difference between revisions
imported>Robert W King No edit summary |
imported>Pat Palmer (Intro revision - I *think* COBOL may be older, so softened "2nd oldest" claim) |
||
Line 1: | Line 1: | ||
''This article is about the programming language. For the speech disorder, see [[Lisp (impediment)]].'' | ''This article is about the programming language. For the speech disorder, see [[Lisp (impediment)]].'' | ||
'''Lisp''', created by [[John McCarthy]] in 1958, is the | '''Lisp''', created by [[John McCarthy]] in 1958, is one of the oldest extant, high-level [[computer]] [[programming language|programming languages]], dating from the same era as [[Fortran]] and [[COBOL]]. Lisp takes its name from "List Processing", since one of its prominently featured [[data structure|data structures]] is the [[linked list]]. Lisp is still used, and sometimes taught, in universities, and has had enormous influence on the field of computer programming. Lisp derives some of its ideas from [[Alonzo Church]]'s [[lambda calculus]], although the language is ''not'' a literal implementation of that formalism. Features in the spirit of the [[lambda calculus]] are probably easiest to see in [[Scheme]]. | ||
Lisp derives some of its ideas from [[Alonzo Church]]'s [[lambda calculus]], although the language is ''not'' a literal implementation of that formalism. Features in the spirit of the [[lambda calculus]] are probably easiest to see in [[Scheme]]. | |||
At [[John McCarthy|McCarthy]]'s request, the word Lisp now designates the family of languages that has resulted from his original design, and no longer any specific language, dialect, or implementation. For this reason, the [[American National Standards Institute]] (ANSI) relating to Lisp, X3.226/1994, is a standard for the language [[Common Lisp]], in order that other members of the Lisp language family not be affected. Likewise, the [[International Organization for Standardization|ISO]] standard, ISO/IEC 13816:1997(E), defines a language named [[ISLISP]]. | At [[John McCarthy|McCarthy]]'s request, the word Lisp now designates the family of languages that has resulted from his original design, and no longer any specific language, dialect, or implementation. For this reason, the [[American National Standards Institute]] (ANSI) relating to Lisp, X3.226/1994, is a standard for the language [[Common Lisp]], in order that other members of the Lisp language family not be affected. Likewise, the [[International Organization for Standardization|ISO]] standard, ISO/IEC 13816:1997(E), defines a language named [[ISLISP]]. |
Revision as of 07:57, 12 October 2007
This article is about the programming language. For the speech disorder, see Lisp (impediment).
Lisp, created by John McCarthy in 1958, is one of the oldest extant, high-level computer programming languages, dating from the same era as Fortran and COBOL. Lisp takes its name from "List Processing", since one of its prominently featured data structures is the linked list. Lisp is still used, and sometimes taught, in universities, and has had enormous influence on the field of computer programming. Lisp derives some of its ideas from Alonzo Church's lambda calculus, although the language is not a literal implementation of that formalism. Features in the spirit of the lambda calculus are probably easiest to see in Scheme.
At McCarthy's request, the word Lisp now designates the family of languages that has resulted from his original design, and no longer any specific language, dialect, or implementation. For this reason, the American National Standards Institute (ANSI) relating to Lisp, X3.226/1994, is a standard for the language Common Lisp, in order that other members of the Lisp language family not be affected. Likewise, the ISO standard, ISO/IEC 13816:1997(E), defines a language named ISLISP.
Hello World
;;; This is an example of a Common Lisp program ;;; This defines a function, but does not call it. ;;; The call from another Lisp program would be: (hello-world) (in-package "CL-USER") (defun hello-world () (write-line "Hello, world!"))
Language properties
The following list represents a series of powerful software language concepts in which Lisp was really the pioneer.
- Garbage collection/automatic storage management
- Dynamic typing
- Object Oriented Programming (Common Lisp Object System)
- Meta Object Protocol
- Self-contained compiler
- Source code as a data structure
- Closures
Others
Popular Myths About Lisp
Lisp is sometimes mischaracterized as an "interpreted" language. In fact, it has been true for several decades that all major Lisps have had compilers. Some very important and influential research in compiler design has been done in Lisp. For example, the notion of continuation-passing style was invented for Scheme.
Lisp is sometimes mischaracterized as a language that only has lists for container types. In fact, it has been true for several decades that all major Lisps have had a rich variety of container types, such as arrays, strings, hash tables, and user-defined class instances.
Members of the Lisp Language Family
There have been many members of the Lisp language family. Some of the more prominent Lisps are:
Lisps in more recent use are:
Languages which found there origin in Lisp:
Significant Applications
Some of the many historically important applications that have been created in Lisp:
- ELIZA (emulator/parody of human therapist)
- MACSYMA (symbolic algebra)
- SHRDLU (natural language understanding)
- Lisp Machine (Lisp-based hardware and operating systems)
External Links
- Common Lisp HyperSpec
- Programming in Emacs Lisp
- ISLISP Programming Language
- Scheme Programming Language