[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

re: book

Dear Greg,

> One of the books I'd really like to see is "The Design and
> Implementation of Interpreted Languages".  

Actually, what you don't seem to know is that several books of this
form already exist,and some are classics.  In particular, the modern
version of Kamin's book is a standard text at numerous universities.
It's called "The Essentials of Programming Languages" (Friedman, Wand
and Haynes, MIT Press), is driven entirely by interpreters, and uses
Scheme instead of Pascal.  See http://www.schemers.org/ for info.

An even more specific book is Paul Wilson's draft book, "An
Introduction to Scheme and its Implementation", which you can get to
on-line from http://www.cs.utexas.edu/users/oops/ (just search for the 
above title).  Paul is a master of many of the things you descibe on
your Web page, and has outstanding surveys on some of them.

Finally, I've written lecture notes along these lines and made them
on-line for years now.  Their evolution may itself make for a mildly
interesting study.  See versions from

  1995-96: http://www.cs.rice.edu/~shriram/311/
  2000-01: http://www.cs.brown.edu/courses/cs173/2000/Lectures/
  2001-02: http://www.cs.brown.edu/courses/cs173/2001/Lectures/
           (in progress)

While the books themselves don't discuss, say, building tools like a
profiler, the homework and exam questions tackle small versions of
such problems.

Finally, let me take issue with the phrase "interpreted language",
which repeatedly arises in this community.  The phrase doesn't mean
anything.  Interpretation is a language implementation technique, and
very few languages are defined by a technique for implementing them.
Admittedly, some languages make it harder than others to build a
compiler, but that's not an essential characteristic.  Please don't
use this phrase unless you absolutely mean "the language must only be
implemented by an interpreter" -- and if that's what you mean, I am
definitely curious to hear why you would impose such a restriction and 
*how* you would force it by the language's design.