Subject: Re: Not really a flame-bait
From: rpw3@rigden.engr.sgi.com (Rob Warnock)
Date: 24 May 2001 03:13:56 GMT
Newsgroups: comp.lang.scheme
Message-ID: <9ehu9k$arpga$1@fido.engr.sgi.com>
Ji-Yong D. Chung <virtualcyber@erols.com> wrote:
+---------------
| Implementing Scheme interpreter circles around several relatively
| difficult issues (for some of us), IMHO  ...
| I could  not find something that lists all the important
| issues.  Usually, a book or a reference lists a limited set.
+---------------

Just a pointer/reminder for all aspiring Scheme implementors...

IMHO, the most important single resource for new implementors (assuming
you've already gone through R5RS itself in detail and have read one or
two of the standard Scheme texts such as SICP2 or SAP or EOPL or Dybvig's
book or the like) is:

    <URL:http://youpou.lip6.fr/queinnec/WWW/LiSP.html>
    Christian Queinnec, "Lisp in Small Pieces" (Cambridge
    University Press, 1996) [originally "Les Languages Lisp"
    (InterEditions, 1994)]

This book takes you through the design & construction of an incremental
series of interpreters, "fast interpreters", and compilers (to both
bytecode and C), with extended side forays into such things as macros
(including reified environments and towers of reflection) and a readable
[to me, at least] introduction to denotational semantics, ending up with
a simple object system.

It's perhaps a bit skimpy when it comes to garbage collection, but there
are *lots* of other good references for that, starting with Paul Wilson's
collection of papers <URL:http://www.cs.utexas.edu/users/oops/papers.html>,
especially:

    <URL:ftp://ftp.cs.utexas.edu/pub/garbage/bigsurv.ps>
    Paul Wilson, "Uniprocessor Garbage Collection Techniques". An
    extensive survey of garbage collection algorithms and variations.

    <URL:ftp://ftp.cs.utexas.edu/pub/garbage/allocsrv.ps>
    Paul R. Wilson, Mark S. Johnstone, Michael Neely, and David Boles.
    "Dynamic Storage Allocation: A Survey and Critical Review"


-Rob

p.s. Even though Queinnec covers object representation somewhat, you
might also want to read this good survey:

    <URL:ftp://ftp.cs.indiana.edu/pub/scheme-repository/doc/pubs/
	 typeinfo.ps.gz>
    David Gudeman, "Representing Type Information in Dynamically Typed
    Languages".

-----
Rob Warnock, 31-2-510		rpw3@sgi.com
SGI Network Engineering		<URL:http://reality.sgi.com/rpw3/>
1600 Amphitheatre Pkwy.		Phone: 650-933-1673
Mountain View, CA  94043	PP-ASEL-IA