Re: Compiler Books was: Is it just me or...

danwang@nordica.CS.Princeton.EDU (Daniel Wang)
20 Feb 1997 00:17:15 -0500

          From comp.compilers

Related articles
Is it just me or... (1997-01-22)
Re: Is it just me or... (1997-01-25)
Re: Is it just me or... (1997-02-08)
Re: Is it just me or... (Carl Cerecke) (1997-02-11)
Compiler Books was: Is it just me or... (1997-02-16)
Re: Compiler Books was: Is it just me or... danwang@nordica.CS.Princeton.EDU (1997-02-20)
| List of all articles for this month |

From: danwang@nordica.CS.Princeton.EDU (Daniel Wang)
Newsgroups: comp.compilers
Date: 20 Feb 1997 00:17:15 -0500
Organization: Princeton University Department of Computer Science
References: 97-01-180 97-01-185 97-02-058 97-02-070 97-02-096
Keywords: books

>>>>> "evan" == evan cheng <> writes:

> People have mentioned both the Dragon Book and Fraser and Hanson's
> book in this thread. I would like to hear opinions on a new book
> that is supposely going to replace the Dragon book as the standard
> compiler text book.

> I am talking about the Tiger Book by Andrew Appel:
> http://www.cs.Princeton.EDU/~appel/

> There are three versions of this book, each differ on the
> implementation language of choice. The three languages are C,
> Java, and ML.

I can give you a not so unbiased opinion, as I was a TA for the
compiler course that used the Java version this year. I'd say it's a
pretty good introduction. I think the treatment on parsing and lexing
is much more understandable than the Dragon book, since it
intentionally omits some material that the Dragon book spends a lot of
time explaining in gory detail. It basicly covers all the theory and
practice needed to understand what goes on under the hood of and

The "Tiger" book structures the rest of the compiler in a different
way than the Dragon book that reflects the fact memory is pretty cheap
compared to the days when the Dragon book was first put together. Each
pass of the compiler builds intermediate code and passes it on to the
next phase, which differs from syntax directed/attribute grammar
approach the Dragon book takes. In general I think the "Tiger" book
reflects more of what is "state of the art" in compiler design
techniques than the Dragon book which shows quite a bit of it's age,
but then again I've been brainwashed and Appel is my advisor so one
can quibble about what "state of the art" really means.

If you wanted to build a Java or ML compiler there's probably more
useful information in the "Tiger" book than the Dragon book, which
covers compilation of Pascal/C/Fortran like languages and not much
else. For instance the draft copy* I had devotes one whole chapter to
garbage collection while the Dragon book spends about a page or so on
it. The draft copy I've received also talks about how to implement
dynamic dispatch for OO languages, and how nice it is to compile a
functional language. However, right now I think the Dragon book has a
slightly more complete discussion of code optimizations, but I think
that'll change in the future when the 98 edition comes out.

* I haven't actually seen what's in the book on the shelves, just a
draft copy of the Java version of the book, so my understanding of the
book maybe a bit off from what's currently there.

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.