by Hanspeter Mössenböck
An introduction to the theory and practice of building compilers for simple programming languages.