Cambridge University Press, 2004. — 557 p.
This book is intended as a textbook for a one- or two-semester course in compilers. Students will see the theory behind different components of a
compiler, the programming techniques used to put the theory into practice, and the interfaces used to modularize the compiler. To make the interfaces and programming examples clear and concrete, I have written them in the C programming language. Other editions of this book are available that use the Java and ML languages.