|New compiler book "Modern Compiler Design" Released firstname.lastname@example.org (Dick Grune) (2000-09-02)|
|From:||Dick Grune <email@example.com>|
|Date:||2 Sep 2000 16:22:32 -0400|
|Organization:||Fac. Wiskunde & Informatica, VU, Amsterdam|
Our compiler construction book "Modern Compiler Design" has finally been
released by John Wiley, and should be available in the book shops and
through amazon.com by now.
Details of the book can be found in http://www.cs.vu.nl/~dick/MCD.html ;
a short summary of its salient features follows below.
Dick Grune | email: firstname.lastname@example.org
Vrije Universiteit | ftp://ftp.cs.vu.nl/pub/dick
de Boelelaan 1081 | http://www.cs.vu.nl/~dick
1081 HV Amsterdam, the Netherlands | tel: +31 20 444 7744
Modern Compiler Design
Dick Grune, Henri Bal, Ceriel Jacobs and Koen Langendoen
John Wiley, 2000, pp. 753
Description by the authors
The book is intended for students who have at least used a compiler
and have given some thought to the notion of compilation. It is not
an introductory course (although it explains almost everything from
The book consists conceptually of two parts. The first part covers
the general compilation process, and contains three chapters based on
the analysis/processing/synthesis paradigm: text analysis, context
handling and code generation. The second part consists of four
chapter, covering the paradigm-specific problems of imperative and
object-oriented, functional, logic and parallel and distributed
programs. The two parts are separated by a chapter on memory
The Preface, the Table Of Contents and the Index are available in
PostScript and pdf format in http://www.cs.vu.nl/~dick/MCD/ . A file
with all figures for preparing lecture slides will be available soon.
We, the authors, have tried hard to write the book in an intuitively
appealing style, concentrating on the reasoning behind and the
mechanics of the algorithms rather than emphasizing rigorous
formulation and formal correctness proofs.
Although the book covers most of the traditional techniques, it makes
a number of strong philosophical and perhaps controversial statements,
for which we think the time has come:
1. It recognizes lexical analysis, LR parsing and BURS code
generation as instances of bottom-up pattern matching and explains
them uniformly using dotted items, thus unifying three important
techniques in compiler design, and allowing the students to extend
them to fit their needs.
2. A recurrent theme is `precomputation': first a simple,
understandable, and obviously correct technique is designed, then all
computation that can be done at compiler generation time is performed
there. This leads naturally from interpretive lexical analysis to
FSAs and allows us to view generated code as an instantiation of an
interpreter, thus introducing connections with partial evaluation.
3. It emphasizes closure algorithms wherever possible, thus unifying
many seemingly different algorithms.
4. It places compiler construction in a wider frame of file and data
conversion, thus enabling the student to see applicability in other
Return to the
Search the comp.compilers archives again.