

Niklaus Wirth: Compiler Construction (Addison Wesley book) - Anon84
http://www-old.oberon.ethz.ch/WirthPubl/CBEAll.pdf

======
adamo
Also from Wirth: Algorithms and Data Structures <http://www-
old.oberon.ethz.ch/WirthPubl/AD.pdf>

------
13ren
It references fewer academic papers than the Dragon book (guess: by a factor
of 20).

Examples are in "a subset of the language Oberon, which is a condensation of
its ancestors Modula-2 and Pascal".

I'm annoyed by Wirth's EBNF, in which "0 or more repetitions of X" is notated
at {X}, when X* has precisely the same meaning, and is much more familiar.
However, Wirth's description of it is more intuitive for me as a coder than
Kleene closure ("smallest superset of X, including \lamba, closed under
concatenation").

 _conclusion_ : a compiler book, like the Dragon book, but less academic
(that's a good thing) and with Pascal examples.

~~~
eru
The dragon book is very old fashioned. (At least from an academic point of
view.)

~~~
13ren
What do you mean? Just that it cites older references, and not newer ones? Or
is it something about the style?

~~~
eru
About the algorithmic techniques they employ.

And they do not even consider higher order functions.

~~~
13ren
You mean because they don't consider combinators for parsing?

That's the only example I can think of for higher order functions used in
compilers. Combinators are much more powerful (though less efficient) than the
construction of automata (which the Dragon book covers). I'm implementing
parser combinators with some unusual properties at the moment, and then (hope
to!) prove some things about them. I wish the Dragon book had covered this
approach in the first place. So your comment is relevant to me.

~~~
eru
I meant - they do not even mention that one could be writing a compiler for a
language that includes higher order functions.

By the way I found the book 'Modern Compiler Design'
(<http://www.cs.vu.nl/~dick/MCD.html>) much more helpful.

------
zenspider
This is my favorite parser/compiler book. It is better on paper tho. :P

