Compare prices and save on cheap textbooks at CheapestTextbooks.com
Compare prices and save on cheap textbooks at CheapestTextbooks.com HACKER SAFE certified sites prevent over 99.9% of hacker crime.
CheapestCDPrice.comCheapestDVDPrice.comCheapestTextbooks.comGo to CheapestTextbooks USA!Go to CheapestTextbooks UK!
Multi-Store Textbook Search
  
(What's this?)
Selected Product:

Engineering a Compiler
Engineering a Compiler

Hardcover
Edition: 1
Author: Keith Cooper, Linda Torczon
Publisher: Morgan Kaufmann
Release Date: 2003-09
ISBN-10: 155860698X
ISBN-13: 9781558606982
List Price: $82.95
Average Customer Rating:
Score = 3.5 Score = 3.5 Score = 3.5 Score = 3.5 Score = 3.5
Similar Products

Computer Architecture, Fourth Edition: A Quantitative Approach (The Morgan Kaufmann Series in Computer Architecture and Design)
Computer Architecture, Fourth Edition: A Quantitative Approach (The Morgan Kaufmann Series in Computer Architecture and Design)
ISBN-10: 0123704901
ISBN-13: 9780123704900
List Price:$88.95


Compilers: Principles, Techniques, and Tools (2nd Edition)
Compilers: Principles, Techniques, and Tools (2nd Edition)
ISBN-10: 0321486811
ISBN-13: 9780321486813
List Price:$106.00


Advanced Compiler Design and Implementation
Advanced Compiler Design and Implementation
ISBN-10: 1558603204
ISBN-13: 9781558603202
List Price:$119.00


Programming Language Pragmatics, Second Edition
Programming Language Pragmatics, Second Edition
ISBN-10: 0126339511
ISBN-13: 9780126339512
List Price:$70.95


Optimizing Compilers for Modern Architectures: A Dependence-based Approach
Optimizing Compilers for Modern Architectures: A Dependence-based Approach
ISBN-10: 1558602860
ISBN-13: 9781558602861
List Price:$108.00


Our Review: To use our price comparison to get the cheapest price, please click on the "Find the Cheapest Price" button located above for Engineering a Compiler by Keith Cooper, Linda Torczon (ISBN-10: 155860698X, ISBN-13: 9781558606982).

At this time we have not yet written a review for Engineering a Compiler by Keith Cooper, Linda Torczon (ISBN-10: 155860698X, ISBN-13: 9781558606982). Please continue to keep checking back to this page as we are constantly adding reviews.

Summaries and Customer Reviews are supplied by Amazon.com

Summary:
The proliferation of processors, environments, and constraints on systems has cast compiler technology into a wider variety of settings, changing the compiler and compiler writer's role. No longer is execution speed the sole criterion for judging compiled code. Today, code might be judged on how small it is, how much power it consumes, how well it compresses, or how many page faults it generates. In this evolving environment, the task of building a successful compiler relies upon the compiler writer's ability to balance and blend algorithms, engineering insights, and careful planning. Today's compiler writer must choose a path through a design space that is filled with diverse alternatives, each with distinct costs, advantages, and complexities.

Engineering a Compiler explores this design space by presenting some of the ways these problems have been solved, and the constraints that made each of those solutions attractive. By understanding the parameters of the problem and their impact on compiler design, the authors hope to convey both the depth of the problems and the breadth of possible solutions. Their goal is to cover a broad enough selection of material to show readers that real tradeoffs exist, and that the impact of those choices can be both subtle and far-reaching.

Authors Keith Cooper and Linda Torczon convey both the art and the science of compiler construction and show best practice algorithms for the major passes of a compiler. Their text re-balances the curriculum for an introductory course in compiler construction to reflect the issues that arise in current practice.

·Focuses on the back end of the compiler—reflecting the focus of research and development over the last decade.
·Uses the well-developed theory from scanning and parsing to introduce concepts that play a critical role in optimization and code generation.
·Introduces the student to optimization through data-flow analysis, SSA form, and a selection of scalar optimizations.
·Builds on this background to teach modern methods in code generation: instruction selection, instruction scheduling, and register allocation.
·Presents examples in several different programming languages in order to best illustrate the concept.
·Provides end-of-chapter exercises, with on-line solutions available to instructors.

Customer Reviews
Average Customer Rating: Score = 3.5 Score = 3.5 Score = 3.5 Score = 3.5 Score = 3.5

Best introductory codegen/optimization book out there
Customer Rating:  Score = 4 Score = 4 Score = 4 Score = 4 Score = 4
I've been working on commercial development tools for nearly 15 years now, with most of that time spent on compilers, and most of the compiler time spent on optimization and code generation.

The strength of this book is that it is a good introduction to modern compiler design, with many up-to-date techniques and references to recent papers. The authors present many algorithms in a very easy-to-grasp manner, and provide useful engineering insights. I've focused almost exclusively on the codegen/optimization sections of the book, so I can't say much about the chapters on parsing and semantic analysis.

The weakness of the book is that they don't discuss some important topics related to the areas that they do cover well. For example, pointer disambiguation, and what effect pointers and aliasing have on SSA form. There is no discussion whatsoever of this topic when they talk about things like dead code elimination. The SSA-based algorithm they present there has a first step of "mark all the needed operations as needed", but there is no discussion of what this means for writes to dereferenced pointers, or the trade-offs you face there (e.g. marking all writes to dereferenced pointers is inexpensive, but conservative, but the analysis required to mark only those dereferences that are truly necessary can be expensive and/or completely subsume the liveness issue they are trying to solve inexpensively with this SSA-based algorithm).

Having read many journal articles on optimization, this is unfortuntately common in the literature as well.

Depends on what you want
Customer Rating:  Score = 4 Score = 4 Score = 4 Score = 4 Score = 4
What it is: A great introduction to basic concepts in contemporary compilers.
What it's not: A handbook for someone thrown in at the deep end of commercial compiler development.

I can imagine a very good one-term course in compiler construction built around this text. After a brief introduction, it gets immediately into the classic topics of lexical scanning, parsing, and syntax analysis. These three chapters help any beginner understand the multiple levels of processing, from the character level, up through reorganizing grammars for practical parsing and table-driven techniques, to the lower levels of sematic analysis. This includes a very brief discussion of type systems and type inference - less than 20 pages, on a topic that whole books devote themselves to. These 200 pages typify what you'll see in the rest of the book: a lot of attention paid to lexical analysis, a problem largely eliminated by automated tools (lex and yacc being the best known), and thin mention of the harder problems that differ significantly across languages and applications of languages.

Chapter 5 addresses the critical issue of intermediate representation, the data structures that represent the program during analysis, optimization, and code generation. Chapter 6 is titled "The Procedure Abstraction." It deals with much more than its name suggests, including procedure activation records (generalizations of stack frames), parameter passing, stack management, symbol visibility and scoping, and scraps of symbol table organization - important stuff, but hard to understand as "procedure abstaction." The next chapter deals with "Code Shape," a grab-bag including value representations, arrays and strings, control constructs, and procedures (again). It also presents a very few pages, at the end, on object oriented language - hardly enough to scratch the surface, let alone build competence. And, for lack of a better place to stick them, I would have expected support for parallelism and exceptions to appear here, but this book seems to omit the topics altogether.

Code analysis and optimization appear in chapters 8-10. That includes a competent introduction to static single assignment notation, a staple of current compiler technology mentioned earlier, in the section on intermediate representation. This covers a range of basics, but omits all significant mention of arrays, the workhorses of performance computing. Chapters 11-13 introduce the basics of instruction selection, scheduling, and register allocation. Although it mentions some hardware effects, like out-of-order execution in superscalar architecture, discussion stays close the instruction sets of popular processors. As a result, it omits mention of SIMD, VLIW, DSP, and more exotic architectures, the ones most in need of good code generation. Compiler-specific support libraries, e.g. the kind that make up for lack of hardware divide instructions, should have appeared somewhere around here, but are oddly absent.

The authors present an adequate introduction for the beginner, someone who's still not sure what a hash table is (see appendix B). It introduces many basic topics, but doesn't go into a lot of depth in any of them. The student who finishes this book will understand most major issues of classical compiler construction. I just can't see a serious, working competence coming out of this text, though. I give it four stars as an academic introduction, but a lot less for anyone with immediate problems to solve.

-- wiredweird

If you are a beginner...Do not buy it
Customer Rating:  Score = 2 Score = 2 Score = 2 Score = 2 Score = 2
I read this book and really did not like it. It is a nightmare for any one new to compilers. It is difficult to read with more emphesis on the backend of the compiler.

The following texts are much better for a beginner:

1. Louden's Compiler construction --> the best text for a beginner.

2. the Dragon book

A great starter guide to writing a compiler
Customer Rating:  Score = 4 Score = 4 Score = 4 Score = 4 Score = 4
I recently used this book to supplement the Dragon book in a Compilers course. I found this book so much easier to read and understand. They do a great job of laying out the basics and introducing you to compiler design.

I also liked how they seemed to keep an open mind about which intermediate representation is best to use. They discuss the pros and cons of graphical IRs vs Linear IRs, and let you decide which best fits your needs.

Their open mindedness ended when it came to optimization though. I got the impression that the authors consider SSA (static single assignment) form to be the silver bullet of optimization. Almost all of the optimizations they discuss in this book rely on your IR being in SSA form! I agree that SSA form does indeed make many optimizations much easier, but there is a very high initial cost involved in converting to and from SSA form. In there defense they spend almost an entire chapter on how to do these conversions.

So to sum up, this book does a great job of introducing you to compiler design. It is well written and very easy to understand. It also does a good job of discussing different compiler design choices and their pros and cons. The only short coming of this book is that the entire optimization discussion is revolves around SSA form.

Terrible for Starters
Customer Rating:  Score = 1 Score = 1 Score = 1 Score = 1 Score = 1
This book was the textbook for an undergraduate course on compilers. Let me make it short: I never read it after reading the first chapter. The authors may be top experts on compilers but they shouldn't be writing books. Another book written in 1982 (compilers, principles, techniques and tools) saved my life for this class. If you are a beginner "do not buy this book".

























Suggestions | Textbook Store Reviews | Site Map | Textbook Reviews | Contact Us
Cheap Textbooks | Used Textbooks | Discount Textbooks | Buy College Textbooks
© 2008 . All rights reserved. Privacy Statement and Disclaimer
web site design and support by Crystal Solutions