What is LISP (from comp.lang.lisp)
Posted: Thu Sep 02, 2004 5:50 am
Von:Ray Dillinger (bear@sonic.net)
Betrifft:Re: Deep Typing for Plain Old Lists - A new kind of LISP?
View this article only
Newsgroups:comp.lang.lisp, comp.lang.scheme
Datum:2004-09-01 13:20:15 PST
Christopher C. Stacy wrote:
>>>>>>On 31 Aug 2004 20:43:16 -0700, Bill Birch ("Bill") writes:
>
> Bill> OK let's clarify. LISP <> Lisp. CLOS is part of Common Lisp but not
> Bill> part of LISP. LISP came before Common Lisp and Scheme.
>
> What is this "LISP" you speak of and where can I read
> the language spec download an implementation?
>
http://www.paulgraham.com/rootsoflisp.html
LISP is a language design, not a language. There have been many
different languages which were (and are) LISP. Scheme is a LISP;
Common Lisp is a LISP; so are Oaklisp, Eulisp, Elisp, Zetalisp,
Autolisp, .... Some folks would even include languages like OPS5,
New Lisp, Haskell, and Dylan in the design space.
It began as a mathematician's attempt to create a mathematical
model of computation, based on the lambda calculus rather than
on the Turing machine. I think the original paper outlined
seven things a LISPy language needed to be complete; any language
that has those things, or facilities isomorphic to them, is a LISP,
regardless of its surface syntax. "Mainstream" languages have
been edging ever nearer to LISP as they grow more powerful; sooner
or later somebody is going to add one more thing to the latest
popular or experimental programming language and come full circle
by reinventing LISP.
LISP is traditionally implemented with a fully parenthesized prefix
syntax, macros that work on the parse tree rather than on strings
of source code, automatic memory management, a heavy reliance on
pair and list-based data structures, and dynamic typing (that is,
it's values rather than variables which have types). Different
people have different ideas about whether a language can lack any
particular combination of these and still be a LISP.
Bear