This book provides a comprehensive, modern approach to the design and construction of compilers--one of the most vital components of a computer's system software. Unique in its coverage of the four major language paradigms, it covers the required theory in depth, while remaining focused on techniques that are of practical benefit to software developers.