Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Crafting a compiler with C
Fischer C., Richard J. J., Benjamin-Cummings Publ. Co., Inc., Redwood City, CA, 1991. Type: Book (9780805321661)
Date Reviewed: Feb 1 1992

If you are familiar with Fischer and LeBlanc’s previous book [1], then you will recognize this book. It is identical to its predecessor, except for the pseudocode examples and algorithms, which have been rewritten by Arnold Robbins in C-style syntax instead of Ada. The book gives a practical presentation of compiler construction material, including in-depth coverage of the standard topics of lexical, syntactic, and semantic analysis; translation; run-time support; code generation and optimization; and syntax error handling. The material is up to date, including compiler writers’ tools for generating scanners, parsers, and code generators. It focuses on the development of compilers for source languages such as Ada or Pascal that create target code for a nonspecific register-based machine.

The practical approach taken by the authors means that the book contains a large number of examples and algorithms coded in C or in a C-like pseudocode. These pieces of code, both embedded in the text and printed as figures, are used to present many of the concepts and are therefore an essential part of the book. They provide a wealth of detail, particularly for practical implementation purposes, but are not always the clearest way to present material. The reader needs some familiarity with C or a similar programming language, and also a willingness to read and dissect code. No other background is required, as the book presents the formal language, automata, and dataflow theory necessary for practical compiler-writing.

The book is suitable for use as a textbook and as the basis of a project in a compilers course, and also as an introduction for would-be compiler writers. The material covered is similar to that in the distinguished second dragon book [2], and the chapters are organized in a similar manner, with an introductory overview and a presentation of a compiler for a small language preceding the main topics. The approach to the material and the style of presentation are rather different. The topic of syntax-directed translation provides one example of the differences. Fischer and LeBlanc base their exposition on action symbols and semantic routines, delaying presentation of the formalism of attribute grammars for several chapters. In contrast, Aho, Sethi, and Ullman base their exposition from the start on the formalism of syntax-directed definitions. Whether you should choose Fischer and LeBlanc instead is largely a matter of personal preference--whether your taste is for their practical approach and code-oriented style of presentation or for the more theoretical approach and abstract presentation of Aho, Sethi, and Ullman.

Reviewer:  Julia Dain Review #: CR115193
1) Fischer, C. N. and LeBlanc, R. J., Jr. Crafting a compiler. Benjamin/Cummings, Redwood City, 1988.
2) Aho, A. V.; Sethi, R.; and Ullman, J. D. Compilers--principles, techniques, and tools. Addison-Wesley, Reading, MA, 1986.
Bookmark and Share
 
Compilers (D.3.4 ... )
 
 
Code Generation (D.3.4 ... )
 
 
Parsing (D.3.4 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Compilers": Date
An architecture for combinator graph reduction
Philip John J., Academic Press Prof., Inc., San Diego, CA, 1990. Type: Book (9780124192409)
Feb 1 1992
A methodology and notation for compiler front end design
Brown C., Paul W. J. Software--Practice & Experience 14(4): 335-346, 1984. Type: Article
Jun 1 1985
Fundamentals of compilers
Lemone K., CRC Press, Inc., Boca Raton, FL, 1992. Type: Book (9780849373411)
May 1 1993
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy