Subject: Re: Help understanding closures
From: rpw3@rpw3.org (Rob Warnock)
Date: Wed, 12 Mar 2003 00:55:59 -0600
Newsgroups: comp.lang.lisp
Message-ID: <wJ-dnaMtHe9iRPOjXTWc-g@speakeasy.net>
Peter Seibel  <peter@javamonkey.com> wrote:
+---------------
| Bruce Hoult <bruce@hoult.org> writes:
| > People have already suggested "Lisp in Small Peices". To that -- and
| > given the above direction -- I would add "Compiling with
| > Continuations" by Andrew W. Appel.
| 
| I'd second the suggestion of _Lisp in Small Pieces_, it's quite an
| entertaining tour through various implementation techniques.
+---------------

And I'll third it! *Especially* the section on "Fast Interpretation",
which shows you that even in an "interpreter" there's no need for
for closures to have anything even vaguely like a "symbol table"
at run time. Basically, in any reasonable system lexical variables
get turned into name-free (no "symbols" any more) accesses to slots
in some kind of closure-environment structure, which may be a flat
array, linked chunks, or a single linked list, depending on which
of various other design choices you've made.


-Rob

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