I bought this book as an introduction to Compiler Design and to that end I have found it quite useful. The material is dense, so expect to have to re-read chapters quite often. Also, I have found it necessary to supplement this book with additional resources to fully understand what Grune is attempting to explain, particularly with chapter 3, which covers attribute grammars. The book's english can be poor sometimes so expect to have to back-track over convulted sentences. Overall, however, this book succeeds in being useful as an introduction to the theory. The authors skip implementation details, so if you are expecting to be able to actually write a compiler when you are done, you are going to be needing additional sources.
Pros: 1)great introduction to theory and maintains enough detail in each section to keep you interested. 2) Book is organized well. Each chapter represents the next step in compiler design. 3) This book covers theory, not implementation...it does not bind itself to one particular language
Cons: 1) Expect to check-out or buy additional reading to supplement this book. 2) The english often leaves something to be desired. 3) The excercises at the end of each chapter were obviously just "thrown-in" at the end. They are quite poor.