[comp.compilers] a good introductory compiler book

geoff@utstat.toronto.edu (07/25/87)

I dislike most compiler books because they don't *explain* how parsing
techniques work, they merely prove that parsing techniques do indeed
work.  I don't find this helpful.  I find most of compiling to be fairly
straightforward, except for parsing, which had seemed to be black magic,
particularly since it is usually explained amid a flurry of Greek
letters.  Aho, Hopcroft & Ullman are fairly bad at this, though the new
Dragon Book looks a little better at quick glance (I understand that the
proliferation of Greek is Ullman's influence; I have been told that Aho
and Hopcroft can explain in English).

Then I found a wonderful book: Understanding and Writing Compilers
by Richard Bornat, Macmillan Computer Science Series, ISBN 0 333 21732 2.
It's clearly not a book for compiler professionals, but it fills a
gap in the introductory compiler book market.  I have yet to see another
book that *explains* how parsing works.  (The book was printed on a
Diablo printer and so cannot contain any Greek.)

The major defect of the book is that its figures contain many errors,
but I have an on-line errata list (which I have been meaning to send the
author) which I will supply on request.

Geoff Collyer	utzoo!utstat!geoff, utstat.toronto.{edu,cdn}!geoff
--
Send compilers articles to ima!compilers or, in a pinch, to Levine@YALE.ARPA
Plausible paths are { ihnp4 | decvax | cbosgd | harvard | yale | cca}!ima
Please send responses to the originator of the message -- I cannot forward
mail accidentally sent back to compilers.  Meta-mail to ima!compilers-request

steve@nuchat.UUCP (Steve Nuchia) (08/06/87)

In article <626@ima.ISC.COM>, geoff@utstat.toronto.edu writes:
> I dislike most compiler books because they don't *explain* how parsing
> techniques work, they merely prove that parsing techniques do indeed
> work.  I don't find this helpful.  I find most of compiling to be fairly
> straightforward, except for parsing, which had seemed to be black magic,
> particularly since it is usually explained amid a flurry of Greek

I saw a book reviewed many moons ago, and bought it when I found
it on the strenght of that review.  I enjoyed reading it, though
I had learned a lot about compilers "the hard way" in the interim.

	_Engineering_a_Compiler_
	Anklam, Cutler, Heinen, and MacLaren
	Digital (as in DEC) Press, ISBN 0-932376-19-3

They cover everything in a very practical nuts-n-bolts way, though
without a lot of gory detail.  This is the team that implemented
the VAX PL/I compiler, and their description of the bootstrapping 
process is alone worth the price of the book (well, almost).

They also cover the re-front-ending of the compiler for C, in a
chapter titled "Beauty and the Beast".  Great fun.

The book's main burden is in the design of the intermediate language
rather than parsing.  Sadly, the PL/I parser was of the ad-hok style
popular at the time.  They used a parser-generator for the C parser,
but they don't go into much detail.

The only thing I really didn't like about the book was the ALL UPPER
CASE examples and the corresponding information-depleted figures that
seem to plague computer science and engineering texts.  Perhaps, nay
certainly, good graphic design should be taught to everyone who ever
might have to try to communicate.

	Steve Nuchia
	{{soma,academ}!uhnix1,sun!housun}!nuchat!steve
--
Send compilers articles to ima!compilers or, in a pinch, to Levine@YALE.ARPA
Plausible paths are { ihnp4 | decvax | cbosgd | harvard | yale | cca}!ima
Please send responses to the originator of the message -- I cannot forward
mail accidentally sent back to compilers.  Meta-mail to ima!compilers-request