[comp.compilers] compiler books... from my bookshelf

johnl@ima.UUCP (07/19/87)

A simple run-down on some of the compiler books from my shelf. This run-down
is very subjective. Your milage with these books may vary.

Dragon Books: Aho/Ullman | Aho/Sethi/Ullman

The new one is more readable than the old one, and it is probably better. I
find both books to be sometimes inpenetrable. The pragmatic parts of both
books are quite weak. I do find the new production/semantic rule tables
useful, but again, no concrete implementation samples.

T&P of Compiler Writing: Tremblay/Sorensen

Much more pragmatic book in many ways. When coupled with the sister book
containing a complete compiler implementation, it is probably one of the
better books for the practicing compiler writer. The chapter on "Intermediate
Representation" is very weak. The chapter on optimization is better.

Compiler Construction for Digital Computers: Gries

Probably one of the best books ever written on the subject, and despite its
age, it is still better than some of the newer books. It has the right blend
of theory and practice, and I wish Gries got around to writing a more
up-to-date version of this book. But I understand that his current research
interests are different, so this may be an empty hope.

Compiler Construction: Weite/Goos

An interesting book with heavy emphasis on Attribute Grammars. Its appendix
present some important algorithms on directed graphs. It is probably useful as
a "complementary" book, not as a "single source" book.

The Design of an Optimizing Compiler: Wulf/others

A very important book that describes one of the best-optimizing compilers
to-date (BLISS). It contains some very pragmatic discussion of the compiler,
and the discussion of the optimization passes are especially useful.

Engineering a Compiler: Anklam/Cutler/others

DEC's book on the PL/I compiler, and the C compiler (The Beast and The
Beauty). A remarkable "practitioner's" book. Somewhat short on theory, but
neverthaless a very good expose of two production compilers sharing a
back-end. [[DEC guys had the same idea UofT had: using a virtual-engine to get
the work done: Dec has TBL, UofT has S/SL.]]

Brinch Hansen on Pascal Compilers: Hansen

This is a hacker's guide to pascal. Contains a complete implementation of a
Pascal-subset compiler, with a recursive- descent parser, and a pascal-machine
for code generation. Probably useful for a beginner-compiler-hacker. It is in
the class of other books like Hendrix's Small-C book, or Ben-Ari's Pascal-S
book.

Compiler Construction: T & P: Barrett/Bates/others..

This is ..er.. a compiler book. I am quite indifferent to both editions of
this book. The second edition may be supplemented with a diskette containing a
parser generator, and a pascal subset compiler ($$). The second edition does
have some minor pieces of code thrown in, probably to get the PRACTICE part in
the title.

Other Sources:

UofArizona Tech Reports by Henson, Davidson and others on code generation,
peephole optimization, etc. Also get their Y compiler distribution, which
includes the PO optimizer, one of the better re-targetable peephole optimizers
written to date. You can actually look at the source !!

UofT Tech reports on SSL, ConEuc, and especially: An orthogonal Model For Code
Generation by James R. Cordy. This report contains some very important ideas,
and it is a must for those writing production-quality code generators.

GNUCC: If you can penetrate the C code, it is an interesting reading. In
general, it seems to optimize better than the BSD4.2 C compiler, and it is a
register-hog, just like the VMS C compiler. [I did examine its assembler
output for a standard test program I previously used for the VMS and BSD
compilers.]

Disclaimer: These are my subjective views. I am not a compiler specialist,
just a VERY INTERESTED reader/hacker.

oz
Usenet: [decvax|ihnp4]!utzoo!yetti!oz, ......!seismo!mnetor!yetti!oz
Bitnet: oz@[yusol|yulibra|yuyetti], Phonet: [416] 736-5257 x 3976
--
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

johnl@ima.BU.EDU (07/22/87)

Two I haven't seen mentioned before are (sorry I don't have the exact titles,
but I don't have the books with me just know):

	... something about Parsing: Theory and Practice ...
	Roland C. Backhouse

		Talks about parsing only.  Use graph-theory techniques,
		with a lot of stuff about good error-recovery.  I wrote
		one parser this way and found it was slow, but it's quite
		interesting.  Mostly deals with top-down parsing.

	Compiler Design Theory		(I think that's it)
	Lewis, Rosenkrantz, and Stearns.
	IBS Series.
		
		Good coverage of LL techniques.  Also covers code generation,
		etc, though not extensively, and not particularly with the
		most up-to-date ideas.  Uses mini-BASIC as a sample language
		(ugh).  I thought it was pretty clear though, with lots
		of practical info.

Mark Wittenberg
Relational Technology, Inc.
Alameda, CA
ihnp4!zehntel!rtech!mark    or    ucbvax!mtxinu!rtech!mark
--
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@hubcap.clemson.edu (Steve (D.E.) Stevenson) (07/23/87)

in article <623@ima.ISC.COM>, johnl@ima.BU.EDU says:
> 	... something about Parsing: Theory and Practice ...
> 	Roland C. Backhouse
Title is "Syntax of Programming Languages: Theory and Practice"  It
is out of print, unfortuately

Steve Stevenson                            steve@hubcap.clemson.edu
(aka D. E. Stevenson),                     dsteven@clemson.csnet
Department of Computer Science,            (803)656-5880.mabell
Clemson Univeristy, Clemson, SC 29634-1906
--
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