Rating: Summary: A good introduction to compiler basics Review: This book delivers exactly what it promises--a complete step-by-step example of writing 'a compiler'. The book is simply a description of one way to build one compiler (and interpreter, and debugger, and various useful utilities). The basics are well presented. First a topic is described, then source code is presented and explained. The results of test runs are shown, and then off to the next topic. Advanced topics, such as optimization, are intentially left out. When a person is ready to read a first book about compilers, this is a good one. All source code developed/described in the book is available on-line.
Rating: Summary: Good, but repetative. Review: Effectivly, you purchase this text to learn how to write compilers and interpreters. This book does this well. The shadow of this, is the fact that 50-60% of this book is repetitious code. Hastily, you're thrown into concepts that help to define how a compiler works. Details covered range from functions of a compiler, down to function blocks of descrete code. Exceptionally thurough, this book is written in a very linear fashion. Almost as if 'A to Z', you're taken from basic line indexing, through assembly output for x86. Providing you have the patience to properly work through this book, once you finish, you will definately have the tools to write your own compiler. Overall, this is a pretty good book. I would not say great because it does not keep a steady 'beat' with its steps. Fast and slow, it can be disorientating for some people. Rather than expending pages upon pages of code, I would like to see a CD included with the book. Code would be replaced by simplified function blocks to help speed the process. (To *really* grasp what the author is doing, you have to deciper the exact details of their code.)
Rating: Summary: Old book - Old Ideas Review: I bought and examined this book thoroughly. There are so many old concepts I wonder whether the author has ever re-read its current second edition. It is supposed to have been written for C++ programmers but of what generation? I understand that the current 2nd edition was written after the release of MS Visual C++ 4. So, the source code still assumes that C++ doesn't have the true and false Boolean constants since the author #defines them, which causes an error in both Visual C++ 6 and later. In fact, the use of #include and void main()indicate that the book is not ANSI compliant. The web site that supports the book provides source code, for MSVC 4 (only after I bought the book, which is extremely expensive, did I find out on the 4th page that it was released in 1996; but the current C++ Standard is from 1998). I tried compiling them in MSVC6 and MSVC.NET. None of the programs compiled (none at all). Even after re-creating the programs by adding files manually, I received many many errors. I tried to fix them and also tried compiling from the Command Prompt, to no avail. It is true that we don't have that many books on compiler development but just as these books are rare, this particular one will be to no help. It is (very) old and its programs don't work. The only things you might get are the authors comments that may help you with some suggestions or guidance, which will be little.
Rating: Summary: Excellent Treatment of a Tough Subject Review: I bought this book in 1996 when I was a CS graduate student. The course text was the traditional "dragon book" which is a complete nigthmare to understand. I read this book in hopes of better understanding how compilers and interpreters are implemented and to this day I feel like I hit the jackpot.The book focuses primarily on the practical implementation of language interpreters and compilers and includes the code (C++) for a full featured Pascal interpreter (not just a minimal implementation that interprets a few statements). The author walks the reader through each class virtually line by line and presents the material in a way that any intermediate level C++ developer can easily understand. Notwithstanding the pragmatic focus of this book, it also provides excellent treatment of the theory of compiler design. While it is at least 5 years old, I still keep this book in my library.
Rating: Summary: Excellent Treatment of a Tough Subject Review: I bought this book in 1996 when I was a CS graduate student. The course text was the traditional "dragon book" which is a complete nigthmare to understand. I read this book in hopes of better understanding how compilers and interpreters are implemented and to this day I feel like I hit the jackpot. The book focuses primarily on the practical implementation of language interpreters and compilers and includes the code (C++) for a full featured Pascal interpreter (not just a minimal implementation that interprets a few statements). The author walks the reader through each class virtually line by line and presents the material in a way that any intermediate level C++ developer can easily understand. Notwithstanding the pragmatic focus of this book, it also provides excellent treatment of the theory of compiler design. While it is at least 5 years old, I still keep this book in my library.
Rating: Summary: Interpreters and compilers bite the dust Review: I used to think you had to be some kind of super human being to write a compiler.Guess what? I was wrong. If you buy this book and you have good c++ programming skills as well as knowledge of data structures(lists,trees etc) you are well on your way. Ronald is the man!He breaks the code down into small objects and shows all the code with great insight into what the code is doing. Man, this is how to write a book on such a complex topic. Ronald really shows the benefits of OOP. Now I feel very confident to take on any programming project. I have over come my fears. I can now get more advanced books on the subject.
Rating: Summary: The Most Elegant C++ I ve ever seen Review: I wouldn't trust anyone who says this book is less than beautiful. Beautifully written C++ with excellent comments. Written for true programmers, its really a bunch of code with explanations of what he's doing. Not only learn about compilers, but learn how to write good code. Be prepared to study the code in detail if you want to learn, but isn't that the only way to learn anyway ?
Rating: Summary: The Most Elegant C++ I ve ever seen Review: I wouldn't trust anyone who says this book is less than beautiful. Beautifully written C++ with excellent comments. Written for true programmers, its really a bunch of code with explanations of what he's doing. Not only learn about compilers, but learn how to write good code. Be prepared to study the code in detail if you want to learn, but isn't that the only way to learn anyway ?
Rating: Summary: Good Book, But The Code Is Only Partially Object Oriented Review: It is a good book and its implementation of a Pascal compiler functions fine, but I didn't like the way the code was only partially object oriented. It's hard for me to understand why the author went to the trouble of making 90% of the code object oriented and then used some global variables that should obviously be members of some of the classes. Other than that, the book was very easy to understand.
Rating: Summary: Takes some effort Review: The author has written a fine book for the experienced C++ programmer who wants to write a compiler or an interpreter. A lot of time will be needed to get through the book, and some knowledge of Pascal. The author takes great care in introducing the elementary concepts of compilers and code is immediately introduced to implement them. Each chapter then builds on the preceding one, and the author attempts to follow the object-oriented paradigm as much as possible. He uses class diagrams to show how a program's classes are defined and related to one another, and uses object diagrams to show how they behave at runtime. His approach here is a simplified version of the one developed by G. Booch, which is used extensively in modern object-oriented design. The reader interested in the theory of compilers should probably read another book alongside this one. Given the time and effort, a very determined reader could sort through all the source code and gain a thorough practical understanding of how to write a compiler or interpreter.
|