I don’t agree on the dragon book (Compilers: Principles, Techniques and Tools). It focuses too much on theory of parsing for front end stuff, and doesn’t really have enough space to give a good treatment on the back end. It’s a book I’d recommend if you were writing another compiler-compiler like yacc.
I’d rather suggest Modern Compiler Implementation in ML; even though there are C and Java versions too, a functional language with pattern matching makes writing a compiler a much more pleasant experience.
I don’t agree on the dragon book (Compilers: Principles, Techniques and Tools). It focuses too much on theory of parsing for front end stuff, and doesn’t really have enough space to give a good treatment on the back end. It’s a book I’d recommend if you were writing another compiler-compiler like yacc.
I’d rather suggest Modern Compiler Implementation in ML; even though there are C and Java versions too, a functional language with pattern matching makes writing a compiler a much more pleasant experience.
(I work on a commercial compiler for a living.)
+1 for ML (and purely functional languages) used for implementing compilers.