
Basics of Compiler Design (full book online) - hhm
http://www.diku.dk/hjemmesider/ansatte/torbenm/Basics/
======
utnick
I skipped compilers in undergrad, did any of you guys use what you learned in
compilers in other topics?

( have no desire to make a compiler, but wondering if this is a topic I should
pick up )

~~~
Goladus
I'm taking compilers right now. The highlights:

Loads of practice writing code to solve problems with a significant degree of
complexity where accuracy is critical and each step builds on the last. It's
easily the most coding-intensive course I have ever taken.

Writing a compiler is the best way to learn the dusty corners of a language,
and you typically have to learn at least two languages; the source and the
target.

You learn how to read and apply BNF Grammars, not just understand what they
are (as in a Theory of Comp course). You learn how they're used to specify
things like operator precedence. You also will probably get a lot of practice
analyzing or manipulating the resulting abstract syntax tree. If you are slow
at recursion now, you won't be after trying to build a compiler (or else it
will take you forever).

You make practical use of a variety of classical data structures and
algorithms. You walk around your parse tree, you do graph coloring to optimize
register usage.

Really though, it's not a topic you can just browse over and get much out of.
The real value is actually buckling down and trying to build a compiler.

