Compiler Design by R. Wilhelm
This book is a comprehensive, up to date account of the concepts and techniques involved in compiler construction. A unique feature is the coverage given to compilation techniques for object-oriented, functional and logic languages in addition to traditional imperative languages. Providing enough material for a two-semester course, it covers the theoretical background in depth, while remaining focused on techniques which are of practical use to software developers.