The "Dragon" and "Tiger" books (see above) are both excellent, though I find the "Tiger" (Appel) book a bit dense. I also quite like Modern Compiler Design by David Galles. As for tools and utilities to help you understand, I recommend taking a look at one or more of the following:
- JavaaCC for lex and parser generation
- Grammatica for lex and parser generation
- Jasmin and Jasper for code generation