Books by Jeremy G. Siek
Essentials of Compilation
A hands-on approach to understanding and building compilers using the programming language Python.