moss@cs.cmu.edu (Eliot Moss) writes:> I have taught a compiler course four times, and much prefer having the> students learn to use an off the shelf parser generator (yacc/bison> style).> > Reacting to previous postings, I don't think deep understanding of the> syntactic aspects is quite the important thing. It is much more important> to gain understanding of type checking, semantic processing in general,> code generation, and the role of optimization, in my opinion.

Speaking as one largely self-educated in writing interpreters/compilers, I
have to agree. From learning to write in several computer languages, I got
a good intuitive feel for syntactic issues; certainly good enough to write
a lexer and parser using flex/bison just by reading the manuals to those
programs. I tried to find books that concentrated on what to do once
parsing was accomplished, but never found sources to describe symbol
table, scoping, and code generation issues as deeply as they covered the
details of parsing.

Using Holub's _Compiler Design in C_, I recall that he spent only one
chapter on symbol table use, and five (ten?) on parsing and development of
parsing tools. The 'dragon' book, and others that I browsed through had a
similar ratio.

In any case, I never really got myself to the point where I could
understand much of the mathematical grammar symbolism (and as a physics
student, I'm used to some hairy symbolism). On the other hand, I
understood every word of the nuts-and-bolts. I sorely wish someone would
concentrate on the practical things that I understood and don't have
automated tools(!) to supplement my understanding.

Does anyone know of a book of this sort?

(Someone who has access to the books I mentioned, feel free to check my
guesses on content).