Join Amazon Prime and ship Two-Day for free and Overnight for $3.99. Already a member? Sign in.

 

or
Sign in to turn on 1-Click ordering.
 
 
More Buying Choices
38 used & new from $42.00

Have one to sell? Sell yours here
 
   
Advanced Compiler Design and Implementation
 
 
Tell the Publisher!
I’d like to read this book on Kindle

Don’t have a Kindle? Get yours here.
 
  

Advanced Compiler Design and Implementation (Hardcover)

by Steven Muchnick (Author) "We begin by reviewing the structure of compilers and then proceed to lay the groundwork for our exploration of the advanced topics in compiler design..." (more)
Key Phrases: inout array, global copy propagation, integer nblocks, Unop Operand, Node Succ, Pentium Pro (more...)
4.2 out of 5 stars See all reviews (18 customer reviews)

List Price: $125.00
Price: $100.00 & this item ships for FREE with Super Saver Shipping. Details
You Save: $25.00 (20%)
Upgrade this book for $22.80 more, and you can read, search, and annotate every page online. See details
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.

Want it delivered Tuesday, July 14? Choose One-Day Shipping at checkout. Details
19 new from $70.49 19 used from $42.00

Frequently Bought Together

Advanced Compiler Design and Implementation + Optimizing Compilers for Modern Architectures: A Dependence-based Approach + Compilers: Principles, Techniques, and Tools (2nd Edition)
Price For All Three: $273.39

Show availability and shipping details


Customers Who Bought This Item Also Bought

Compilers: Principles, Techniques, and Tools (2nd Edition)

Compilers: Principles, Techniques, and Tools (2nd Edition)

by Alfred V. Aho
4.1 out of 5 stars (68)  $89.15
Engineering a Compiler

Engineering a Compiler

by Keith Cooper
3.6 out of 5 stars (8)  $64.70
Programming Language Pragmatics, Third Edition

Programming Language Pragmatics, Third Edition

by Michael L. Scott
4.8 out of 5 stars (22)  $63.29
Writing Compilers and Interpreters

Writing Compilers and Interpreters

by Ronald Mak
4.0 out of 5 stars (22)  $47.93
Garbage Collection: Algorithms for Automatic Dynamic Memory Management

Garbage Collection: Algorithms for Automatic Dynamic Memory Management

by Richard Jones
4.9 out of 5 stars (8)  $91.93
Explore similar items

Editorial Reviews

Amazon.com Review
Optimizing compilers, which turn human-readable programming languages into the smallest, most efficient machine code possible, are among the most complex pieces of software ever written. Building a compiler is both science and black art and demands an intimate knowledge of data structures, algorithms, high-level programming languages, and processor architectures and their instruction sets. Advanced Compiler Design and Implementation presents a comprehensive and technically up-to-date look at design of real-world compilers for CISC- and RISC-based uni-processor architectures. The author led the advanced compiler design and implementation teams for both Hewlett-Packard's PA-RISC and Sun Microsystems's SPARC processors.

Product Description

From the Foreword by Susan L. Graham:

This book takes on the challenges of contemporary languages and
architectures, and prepares the reader for the new compiling problems that
will inevitably arise in the future.

The definitive book on advanced compiler design

This comprehensive, up-to-date work examines advanced issues in the design
and implementation of compilers for modern processors. Written for
professionals and graduate students, the book guides readers in designing
and implementing efficient structures for highly optimizing compilers for
real-world languages. Covering advanced issues in fundamental areas of
compiler design, this book discusses a wide array of possible code
optimizations, determining the relative importance of optimizations, and
selecting the most effective methods of implementation.

* Lays the foundation for understanding the major issues of advanced
compiler design

* Treats optimization in-depth

* Uses four case studies of commercial compiling suites to illustrate
different approaches to compiler structure, intermediate-code design, and
optimization—these include Sun Microsystems's compiler for SPARC, IBM's for
POWER and PowerPC, DEC's for Alpha, and Intel's for Pentium an related
processors

* Presents numerous clearly defined algorithms based on actual cases

* Introduces Informal Compiler Algorithm Notation (ICAN), a language devised
by the author to communicate algorithms effectively to people

See all Editorial Reviews


Product Details

  • Hardcover: 856 pages
  • Publisher: Morgan Kaufmann; 1st edition (August 15, 1997)
  • Language: English
  • ISBN-10: 1558603204
  • ISBN-13: 978-1558603202
  • Product Dimensions: 9.4 x 7.4 x 1.7 inches
  • Shipping Weight: 3.7 pounds (View shipping rates and policies)
  • Average Customer Review: 4.2 out of 5 stars See all reviews (18 customer reviews)
  • Amazon.com Sales Rank: #248,775 in Books (See Bestsellers in Books)

    Popular in these categories: (What's this?)

    #6 in  Books > Computers & Internet > Programming > Languages & Tools > Compiler Design
    #30 in  Books > Computers & Internet > Programming > Languages & Tools > Compilers

Inside This Book (learn more)

Citations (learn more)
This book cites 28 books:
See all 28 books this book cites
 
73 books cite this book:
See all 73 books citing this book


Books on Related Topics (learn more)
 
 

What Do Customers Ultimately Buy After Viewing This Item?

Advanced Compiler Design and Implementation
50% buy the item featured on this page:
Advanced Compiler Design and Implementation 4.2 out of 5 stars (18)
$100.00
Compilers: Principles, Techniques, and Tools (2nd Edition)
22% buy
Compilers: Principles, Techniques, and Tools (2nd Edition) 4.1 out of 5 stars (68)
$89.15
Programming Language Pragmatics, Third Edition
12% buy
Programming Language Pragmatics, Third Edition 4.8 out of 5 stars (22)
$63.29
Engineering a Compiler
11% buy
Engineering a Compiler 3.6 out of 5 stars (8)
$64.70

Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
Check the boxes next to the tags you consider relevant or enter your own tags in the field below.

Your tags: Add your first tag
 
Help others find this product — tag it for Amazon search
No one has tagged this product for Amazon search yet. Why not be the first to suggest a search for which it should appear?

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

 

Customer Reviews

18 Reviews
5 star:
 (13)
4 star:    (0)
3 star:
 (2)
2 star:
 (2)
1 star:
 (1)
 
 
 
 
 
Average Customer Review
4.2 out of 5 stars (18 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

 
32 of 33 people found the following review helpful:
5.0 out of 5 stars The definitive compiler book for the 1990s, September 23, 1998
This book is the comprehensive text for anyone working on an optimizing compiler for uniprocessor systems. It gives good detail on all major approaches and is up-to-date on important techniques like SSA form and partial redundancy information. As someone working directly in the field, it's saved me the effort of hunting up original research papers in many areas. One drawback for this book as a practical tool: the pseudocode used to illustrate examples is often pretty far from being suitable for real implementations.

A warning: this is not an introductory book, and people who want to learn about the basics of building a compiler should look elsewhere; perhaps Andrew Appel's ``Modern Compilers'' series. Muchnick's book is for people who want to write compilers which generate high-performance code.

Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
23 of 25 people found the following review helpful:
5.0 out of 5 stars A great book on advanced compiler design, April 13, 2003
By Ian Kaplan (Livermore, CA) - See all my reviews
(REAL NAME)   
I have been working on language processors, interpreters and
compilers for almost twenty years. I try to order all the books
that have something unique to say about compiler design and
implementation. This is one of the best books I have seen on
advanced compiler design. I have owned it since it was first
published. Going back and rereading it I am reminded of what
and excellent book it is, which is what motivated this review.

Advanced compiler design deals with various forms of optimization,
including local, global and loop optimization. This is a complex
topic with thirty years of research behind it (it is interesting
to note that the late Gary Kildall, of CP/M fame, did some early
work on optiimization in the early 1970s). No single book can
provide complete coverage of all optimization issues. However,
this book, along with Allen and Kennedy's equally excellent
"Optimizing Compilers for Modern Architectures" covers almost
everything you need to know.

One of the problems with the academic literature on compiler
optimization is that it can be unnecessarily obscure. Muchnick
writes clearly, with the implementer in mind. He provides a
wide range of techniques, allowing the implementer to choose
the correct one for a given compiler. This approach is both
useful and necessary: there is no single method for building
a compiler, given the range of languages and design objectives.

Muchnick covers everything you need to know about local and
global scalar optimization, including scalar optimization in
loops and optimization for modern processor architecture.
The only thing missing is an indepth coverage of loop dependence
and optimization techniques, which is provided by Allen and
Kennedy.

If you are working on the design, implementation or extension of
a modern compiler, this book should be part of your library.

Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
31 of 37 people found the following review helpful:
5.0 out of 5 stars Excellent, October 13, 2003
By Dr. Lee D. Carlson (Baltimore, Maryland USA) - See all my reviews
(TOP 100 REVIEWER)    (REAL NAME)      
Advances in compiler design do not get much press these days. The reasons for this are unclear, but no doubt the perception that compilers need no further improvement has something to do with this. This book, written by one of the leading experts on compilers, certainly dispels this belief. Once readers get used to the idiosyncratic ICAN (Informal Compiler Algorithm Notation) invented by the author and used throughout the book, they get a comprehensive overview of compilers, especially that of optimization. Compilers for the SPARC, PowerPC, DEC, and Pentium architectures are treated in the book. The predominant emphasis of the book is in optimization, and so a few more recent and important topics in compiler construction, such as partial evaluation, are not discussed. Readers are expected to have a prior background in elementary compiler theory. My primary interest in reading the book was to gain insight into the compilation issues that arise in symbolic programming languages such as LISP and Prolog.

A detailed review of this book cannot be done for lack of space, but some of the helpful aspects and interesting discussions in the book include: 1. The "wrap-up" section at the end of each chapter, giving a compact summary of what was done in the chapter. 2. Generating loads and stores: The author shows how to move values to and from registers using routines more sophisticated than simply loading values into registers before using them or storing values as soon as they have been computed. 3. The main issues in the use of registers, such as variable allocation, efficiency of procedural calls, and scoping. The author lists the different categories that will result in contention for registers, such as stack, frame, and global offset table pointers and dynamic and static links. 4. The local stack frame and its uses, such as holding indexed variables (arrays, etc.) and debugging. 5. The five different parameter-passing mechanisms: call by value, call by result, call by value-result, call by reference, and call by name. A thorough discussion is given of their properties and what languages make use of them. In particular, the author notes that in the languages C and C++, call by value is the only parameter-passing mechanism, but that the address of an object may be passed, thus emulating essentially call by reference. This can be a source of confusion to those who program in C and C++. The most exotic of these mechanisms is call by name, which is a form of "lazy evaluation" in functional programming languages. The author gives a code example of the call by name parameter passing in ALGOL 60. I don't know of any modern practical programming languages that make use of call by name. 6. Shared libraries and the role of semantic linking and position independent code. 7. The compilation issues that arise in symbolic languages, such as LISP and Prolog. These languages typically have run-time type checking and function polymorphism, which gives them their power and ease of use. The author discusses how to produce efficient code for these languages. Since heap storage is utilized heavily by these languages, the allocation and recovering of it is very important. "Generation scavenging" is mentioned as the most efficient method for doing garbage collection in these languages. This method has been advertised in the literature as one that minimizes the time needed for storage reclamation in comparison with other approaches. In addition, the use of "on-the-fly" recompilation for polymorphic-language implementations is discussed. 8. Dynamic programming and its role in automatic production of code generators, as contrasted with the "greedy approach". The author explains the need for "uniform register machines" in the dynamic programming algorithm. 9. Interval analysis and its use in the analysis of control flow. This technique has been used in the field called "abstract interpretation" in recent years, the aim of which is too automatically and intelligently test program code. 10. Dependencies between dynamically allocated objects, such as links between graph structures in LISP and Prolog. The author describes the Hummel-Hendren-Nicolau technique for doing this, which involves naming schemes for locations in heap memory, a collection of axioms for characterizing aliasing locations among locations, and lastly, and most interestingly, utilizes a theorem prover to establish the properties of the data structures. The author emphasizes though that this technique, and others developed for doing dependence analysis of dynamically allocated objects, are very computationally intensive. 11. Individual optimizations, which the author divides into four groups in order of importance. 12. Induction-variable optimizations and their role in loop optimizations. The author shows how to identify induction variables, and how to transform them using various techniques, going by the name strength reduction, induction-variable removal, and linear-function test replacement. 13. Procedure integration and its role in "inlining" procedures in languages such as C++. The author emphasizes the drawbacks in using inlining, such as its impact on cache misses. 14. The trade-off between object abstraction and optimization, which occurs in object-oriented languages such as C++. The author discusses in detail the role of interprodecural optimizations in dealing with abstraction in the object-oriented modular approach to programming, particularly the identification of "side effects" in making procedure calls. 15. Code optimization that takes advantage of the memory hierarchy, such as data and instruction caches, and how to improve register allocation for arrays. The author gives a detailed and highly interesting discussion of scalar replacement for array elements. 16. Future trends and research in compiler design. The author mentions a few which he believes will dominate in the upcoming decade, such as scalar-oriented and data-cache optimizations. Scalar compilation will be he most active research area in his opinion. At the present time, there has been discussion of "intelligent compilers" that will interact with the user to develop optimal code, or even produce correct programs. These compilers will understand the intentions of the program and warn the user if these are violated, as well as reduce the time and cost needed for testing programs.

Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)


Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews

3.0 out of 5 stars recommended with reservations
I bought this book to help with a compiler I'm writing for personal use. I've had introductory compiler courses, and I was looking for a text to expand my knowledge. Read more
Published 13 days ago by M. Sieweke

3.0 out of 5 stars Good, but flawed
This is a very good intermediate/advanced text for codegen & optimization.

Having spent nearly 15 years working on compiler development, with most of it spent on... Read more
Published 19 months ago by Mark Lacey

5.0 out of 5 stars Bible of compiler data-flow analysis
It's the bible of compiler data-flow analysis. The author had the experience of building an industrial strength compiler. Read more
Published 22 months ago by Zhuang Guo

5.0 out of 5 stars Great starting point for compiler development
Compiler development is more of a craft than a science, although there's plenty of science involved. Read more
Published on March 3, 2007 by wiredweird

2.0 out of 5 stars Confusing at best
I've seen chapter 14 of this book referenced (by a university professor giving suggestion to his students, not by a random guy) as:

"Another conventional approach to... Read more
Published on August 17, 2006 by Paolo

1.0 out of 5 stars Good for seasoned compiler writers, bad for CS students
Ok, let's be fair. This book provides a broad coverage of useful optimizations and it will be useful in case you work writing compilers AND have some experience... Read more
Published on December 13, 2004 by Southern Light

5.0 out of 5 stars Excellent coverage
I would suggest to the average reader to first
get "Programming Language Pragmatics" by michael l. scott
and coming to this book. Read more
Published on August 15, 2003 by Raymond Tay

5.0 out of 5 stars Great Back-end Book
The book does its job and does it well. But, it's only fair to warn that the book concentrates on code generation, optimization, instruction scheduling, etc. Read more
Published on August 2, 2003 by H. Singh

5.0 out of 5 stars Great Book; read the earlier chapters twice to appreciate
This is, without doubt, an excellent book to understand the structure and the concepts involved in an optimising compiler. Read more
Published on February 26, 2003 by Somasundaram Meiyappan

5.0 out of 5 stars A Very Good Starting Point Into Compiler Theory from 1997
My employer owns the book. It is a constant on my shelf. The dragon book is great but there are concepts I did not understand in the classic dragon book until the Muchnick book... Read more
Published on April 3, 2002

Only search this product's reviews



Customer Discussions

 Beta (What's this?)
New! See all customer communities, and bookmark your communities to keep track of them.
This product's forum (0 discussions)
  Discussion Replies Latest Post
  No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
  [Cancel]


Active discussions in related forums
  Discussion Replies Latest Post
Textbooks for Kindle DX? 34 16 hours ago
C# or Java? 32 5 days ago
Does anyone use Discovering Geometry: An Investigative Approach? 3 12 days ago
   


Product Information from the Amapedia Community

Beta (What's this?)



Look for Similar Items by Category


Have a shopping question?
Try askville. It's free!
Get answers from real people in areas like health, books, parenting, relationships



 

Big Savings in Books

Bargain Books
Find great titles at fantastic prices in our Bargain Books Store.
 

Dive into Summer Reading

Summer Reading for Kids and Teens
Don't even think about hitting the beach without browsing the books in our Summer Reading Store. Discover bestsellers, paperback picks, beach reads, and more terrific titles all summer long.
 

Get That Chiseled Look

Shop for chisels
Choose chisels with quality blades and ergonomic handles for all your cutting and shaping needs.

Shop for chisels now

 

 

Feedback

If you need help or have a question for Customer Service, contact us.
 Would you like to update product info or give feedback on images?
Is there any other feedback you would like to provide?

Your comments can help make our site better for everyone.


Where's My Stuff?

Shipping & Returns

Need Help?

Your Recent History

  (What's this?)
You have no recently viewed items or searches.

After viewing product detail pages or search results, look here to find an easy way to navigate back to pages you are interested in.

Look to the right column to find helpful suggestions for your shopping session.

Continue shopping: Top Sellers
Paranoia
Paranoia by Joseph Finder
Glenn Beck's Common Sense
Finger Lickin' Fifteen
Finger Lickin' Fifteen by Janet Evanovich
My Soul to Lose
My Soul to Lose by Rachel Vincent
$0.00

Conditions of Use | Privacy Notice © 1996-2009, Amazon.com, Inc. or its affiliates