|language implementation textbook(s) email@example.com (1992-03-13)|
|From:||firstname.lastname@example.org (Michael L. Scott)|
|Organization:||Computer Science Department University of Rochester|
|Date:||Fri, 13 Mar 1992 21:43:40 GMT|
I'm feeling frustrated in my search for a textbook for the course I'm
teaching in the fall, and wondering if there are any appropriate books
that I haven't heard about.
It's an undergraduate course about "how programming languages work" -- not
so much compiler design as an understanding of what the compiler does to
your programs, what goes on under the hood when you run them, and how all
of that relates to language design. We cover a bit of assembly-level
architecture, some compiler internals, and a lot of language concepts. As
in a traditional programming languages course, we cover semantic issues
from the programmer's point of view. However, we also cover things from
the implementer's point of view, because we believe that people appreciate
language design issues better, and write better programs, when they
understand what the compiler does to their code and why.
So, for example, we spend a lot of time on subjects like run-time storage
management, referencing environments, dynamic-sized data structures,
pointer checking, thunks, efficient code for case statements, garbage
collection, good use of RISC instruction sets, etc.
The project for the course uses a small, well-written, but naive and
stylized compiler for a simple language (using the Wisconsin tool set).
Students extend the various phases of the compiler in order to implement
some additional language features. The goal is to instill a basic
understanding of how a compiler works; the project is designed mainly to
force students to read and understand the existing code.
Last time I taught the course I tried to use both a programming languages
text and a compiler construction text, but that didn't work very well.
The closest thing I know inside a single cover is the first half of
Pratt's "Programming Languages: Design and Implementation," but (1) it's
dated, (2) the second half (in-depth look at several languages) isn't of
use to us, and (3) it doesn't have enough description of how a compiler
Can anyone suggest other books that I ought to look at? (Please include
I will be happy to post a summary of responses to the net if there appears
to be widespread interest.
Michael L. Scott
Computer Science Dept. (716) 275-7745, 5671
University of Rochester FAX 461-2018
Rochester, NY 14627-0226 email@example.com
Return to the
Search the comp.compilers archives again.