William D Clinger <will@ccs.neu.edu> wrote:
+---------------
| > BTW, are there any documents/books/sources on the implementation (and
| > compilation) of scheme?
|
| For the kinds of things that you are talking about, I think the best
| reference is Christian Queinnec's book "Lisp in Small Pieces"
+---------------
*Absolutely!* Tough going in places, but essential for anyone who might
be considering doing an implementation. Two areas I found especially
helpful were:
1. His discussion of the various "levels" or "worlds" [I forget exactly
the term he used] of macro interpretation/expansion; and
2. A section on some nasty/subtle interactions between CALL/CC and EVAL,
especially how the fact that a continuation can be captured during
argument evaluation requires that arguments *must* be evaluated
into temporary storage then *copied* to the new bindings for the
arguments for the procedure being called (rather than immediately
copied into the newly-bound locations as each argument is evaluated).
[Unless you can prove through data/control flow analysis that
no continuation can be captured during the argument evaluation.]
-Rob
-----
Rob Warnock, 8L-855 rpw3@sgi.com
Applied Networking http://reality.sgi.com/rpw3/
Silicon Graphics, Inc. Phone: 650-933-1673
2011 N. Shoreline Blvd. FAX: 650-964-0811
Mountain View, CA 94043 PP-ASEL-IA