Subject: Re: LISP interpreter internals
From: rpw3@rpw3.org (Rob Warnock)
Date: Wed, 18 Apr 2007 03:40:11 -0500
Newsgroups: comp.lang.lisp
Message-ID: <x6mdnV7upoz2RLjbnZ2dnUVZ_hninZ2d@speakeasy.net>
Pascal Costanza  <pc@p-cos.net> wrote:
+---------------
| Daniel Kalny wrote:
| > Hello group,
| > I am looking for some information about LISP interpreter internals,
| > how it works and how one could write his own LISP interpreter, even if
| > a simple one. I found some brief info about read-evaluate-print loop
| > and the internal structure of lists, but nothing comprehensive that
| > would help me to understand fully how LISP works. Any help is
| > appreciated.
| 
| Two good starting points are "The Roots of Lisp" by Paul Graham
| and "The  Art of the Interpreter" by Sussman and Steele.
+---------------

And then when you're ready to *really* get your hands dirty,
Christian Queinnec's marvelous "LiSP", which covers numerous
design alternatives in the implementation of Lisp-like languages:

    "Lisp in Small Pieces" [originally "Les langages Lisp"]
    http://www-spi.lip6.fr/~queinnec/WWW/LiSP.html
    http://www-spi.lip6.fr/~queinnec/common/LiSPeng.png

I personally found "Chapter 6: Fast interpretation" to be
particularly useful as an introduction to the preprocessing
needed for fast lexical variables, including various alternatives
for the runtime representations of lexical environments [including
one particularly-tricky "gotcha" in the interaction between the
representation of closures and Scheme-style continuations].


-Rob

-----
Rob Warnock			<rpw3@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607