Compiler design is a huge field and this book is a mirror of this field. The language is clear and the notation used by authors simplify understanding of the material. This book covers the main topics relevant to compiler design:
1) Introduction to compiling
2) A simple one-pass compiler
3) Lexycal analysis
4) Syntax analysis
5) Syntax-directed translation
6) Type checking
7) Run-time Environments
8) Intermediate code generation
9) Code generation
10) Code optimization
plus other chapters with some hints and a programming project.
Some people said that this book is too "heavy" for an introductory course on compiler design. I think that all people reading a book of this entity should have at least a basic understanding of theoretical computer science, like finite state machines, grammars, and regular expressions. All the material is well organized.
The book starts with an introduction to compiler design, ideas and basic principles. Then it develops concepts in the rest of the book. Of course this is not an easy reading but this is not a problem of the book. Compiler theory is complex and this book try to explain it in the clearest way possible.
I like this book, after reading this you'll have all the skills to read more advanced books about this subject.
This book has always been considered the standard textbook about compiler design and I recommend it to all people interested in this wonderful subject. Highly recommended.