Engineering a Compiler, Third Edition covers the latest developments in compiler technology, with new chapters focusing on semantic elaboration (the problems that arise in generating code from the ad-hoc syntax-directed translation schemes in a generated parser), on runtime support for naming and addressability, and on code shape for expressions, assignments and control-structures. Leading educators and researchers, Keith Cooper and Linda Torczon, have revised this popular text with a fresh approach to learning important techniques for constructing a modern compiler, combining basic principles with pragmatic insights from their own experience building state-of-the-art compilers. - Presents in-depth treatments of algorithms and techniques used in the front end of a modern compiler - Pays particular attention to code optimization and code generation, both primary areas of recent research and development - Focuses on how compilers (and interpreters) implement abstraction, tying the underlying knowledge to students' own experience and to the languages in which they have been taught to program - Covers bottom-up methods of register allocation at the local scope