Great Deals on Used Textbooks & New Textbooks!               
My Account | Help Desk | Market Place Shopping Cart
Free shipping. Click here for details.
No items in cart.
Total: $0.00
Textbooks Sell Textbooks Books Supplies Medical Books College Apparel Movies Clearance
Search  Advanced >>
Related Topics: Computers >> Compilers
Advanced Compiler Design and Implementation,9781558603202
Other versions by this Author
We Buy This Book Back!

Details>>

Advanced Compiler Design and Implementation


Author(s): Muchnick
ISBN10:  1558603204
ISBN13:  9781558603202
Format:  Hardcover
Pub. Date:  8/1/1997
Publisher(s): Elsevier Science & Technology

Buy in Bulk
Send to a friend
New Price  $92.58
List Price $94.95
eVIP Price  $87.96
New Copy:  Usually Ships in 3-4 Business Days
add remove
Rental Price  $52.49   What is a rental?
Due back on
 
Add Rental Book to Cart
Marketplace Price $36.52
List Price $94.95 Available in the eCampus Marketplace
Take 90 Days to Pay on $250 or more
with Quick, Easy, Secure
Subject to credit approval.
SummaryTable of Contents

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


Computer professionals who need to understand advanced techniques for designing efficient compilers will need this book. It provides complete coverage of advanced issues in the design of compilers, with a major emphasis on creating highly optimizing scalar compilers. It includes interviews and printed documentation from designers and implementors of real-world compilation systems.
Foreword vii(14)
Susan Graham
Preface xxi
1 Introduction to Advanced Topics
1(18)
1.1 Review of Compiler Structure
1(2)
1.2 Advanced Issues in Elementary Topics
3(3)
1.3 The Importance of Code Optimization
6(1)
1.4 Structure of Optimizing Compilers
7(4)
1.5 Placement of Optimizations in Aggressive Optimizing Compilers
11(3)
1.6 Reading Flow Among the Chapters
14(2)
1.7 Related Topics Not Covered in This Text
16(1)
1.8 Target Machines Used in Examples
16(1)
1.9 Number Notations and Data Sizes
16(1)
1.10 Wrap-Up
17(1)
1.11 Further Reading
18(1)
1.12 Exercises
18(1)
2 Informal Compiler Algorithm Notation (ICAN)
19(24)
2.1 Extended Backus-Naur Form Syntax Notation
19(1)
2.2 Introduction to ICAN
20(3)
2.3 A Quick Overview of ICAN
23(2)
2.4 Whole Programs
25(1)
2.5 Type Definitions
25(1)
2.6 Declarations
26(1)
2.7 Data Types and Expressions
27(9)
2.8 Statements
36(5)
2.9 Wrap-Up
41(1)
2.10 Further Reading
41(1)
2.11 Exercises
41(2)
3 Symbol-Table Structure
43(24)
3.1 Storage Classes, Visibility, and Lifetimes
43(2)
3.2 Symbol Attributes and Symbol-Table Entries
45(2)
3.3 Local Symbol-Table Management
47(2)
3.4 Global Symbol-Table Structure
49(5)
3.5 Storage Binding and Symbolic Registers
54(5)
3.6 Approaches to Generating Loads and Stores
59(4)
3.7 Wrap-Up
63(1)
3.8 Further Reading
64(1)
3.9 Exercises
64(3)
4 Intermediate Representations
67(38)
4.1 Issues in Designing an Intermediate Language
67(2)
4.2 High-Level Intermediate Languages
69(2)
4.3 Medium-Level Intermediate Languages
71(1)
4.4 Low-Level Intermediate Languages
71(1)
4.5 Multi-Level Intermediate Languages
72(1)
4.6 Our Intermediate Languages: MIR, HIR, and LIR
73(8)
4.7 Representing MIR, HIR, and LIR in ICAN
81(11)
4.8 ICAN Naming of Data Structures and Routines that Manipulate Intermediate Code
92(4)
4.9 Other Intermediate-Language Forms
96(5)
4.10 Wrap-Up
101(1)
4.11 Further Reading
102(1)
4.12 Exercises
102(3)
5 Run-Time Support
105(32)
5.1 Data Representations and Instructions
106(3)
5.2 Register Usage
109(2)
5.3 The Local Stack Frame
111(3)
5.4 The Run-Time Stack
114(2)
5.5 Parameter-Passing Disciplines
116(3)
5.6 Procedure Prologues, Epilogues, Calls, and Returns
119(8)
5.7 Code Sharing and Position-Independent Code
127(4)
5.8 Symbolic and Polymorphic Language Support
131(2)
5.9 Wrap-Up
133(1)
5.10 Further Reading
134(1)
5.11 Exercises
135(2)
6 Producing Code Generators Automatically
137(32)
6.1 Introduction to Automatic Generation of Code Generators
138(1)
6.2 A Syntax-Directed Technique
139(20)
6.3 Introduction to Semantics-Directed Parsing
159(1)
6.4 Tree Pattern Matching and Dynamic Programming
160(5)
6.5 Wrap-Up
165(1)
6.6 Further Reading
166(1)
6.7 Exercises
166(3)
7 Control-Flow Analysis
169(48)
7.1 Approaches to Control-Flow Analysis
172(5)
7.2 Depth-First Search, Preorder Traversal, Postorder Traversal, and Breadth-First Search
177(4)
7.3 Dominators and Postdominators
181(10)
7.4 Loops and Strongly Connected Components
191(5)
7.5 Reducibility
196(1)
7.6 Interval Analysis and Control Trees
197(5)
7.7 Structural Analysis
202(12)
7.8 Wrap-Up
214(1)
7.9 Further Reading
214(1)
7.10 Exercises
215(2)
8 Data-Flow Analysis
217(50)
8.1 An Example: Reaching Definitions
218(5)
8.2 Basic Concepts: Lattices, Flow Functions, and Fixed Points
223(5)
8.3 Taxonomy of Data-Flow Problems and Solution Methods
228(3)
8.4 Iterative Data-Flow Analysis
231(4)
8.5 Lattices of Flow Functions
235(1)
8.6 Control-Tree-Based Data-Flow Analysis
236(1)
8.7 Structural Analysis
236(13)
8.8 Interval Analysis
249(1)
8.9 Other Approaches
250(1)
8.10 Du-Chains, Ud-Chains, and Webs
251(1)
8.11 Static Single-Assignment (SSA) Form
252(6)
8.12 Dealing with Arrays, Structures, and Pointers
258(1)
8.13 Automating Construction of Data-Flow Analyzers
259(2)
8.14 More Ambitious Analyses
261(2)
8.15 Wrap-Up
263(1)
8.16 Further Reading
264(1)
8.17 Exercises
265(2)
9 Dependence Analysis and Dependence Graphs
267(26)
9.1 Dependence Relations
267(2)
9.2 Basic-Block Dependence DAGs
269(5)
9.3 Dependence in Loops
274(5)
9.4 Dependence Testing
279(5)
9.5 Program-Dependence Graphs
284(2)
9.6 Dependences Between Dynamically Allocated Objects
286(2)
9.7 Wrap-Up
288(1)
9.8 Further Reading
289(1)
9.9 Exercises
290(3)
10 Alias Analysis
293(26)
10.1 Aliases in Various Real Programming Languages
297(5)
10.2 The Alias Gatherer
302(5)
10.3 The Alias Propagator
307(7)
10.4 Wrap-Up
314(1)
10.5 Further Reading
315(1)
10.6 Exercises
316(3)
11 Introduction to Optimization
319(10)
11.1 Global Optimizations Discussed in Chapters 12 Through 18
321(2)
11.2 Flow Sensitivity and May vs. Must Information
323(1)
11.3 Importance of Individual Optimizations
323(2)
11.4 Order and Repetition of Optimizations
325(3)
11.5 Further Reading
328(1)
11.6 Exercises
328(1)
12 Early Optimizations
329(48)
12.1 Constant-Expression Evaluation (Constant Folding)
329(2)
12.2 Scalar Replacement of Aggregates
331(2)
12.3 Algebraic Simplifications and Reassociation
333(10)
12.4 Value Numbering
343(13)
12.5 Copy Propagation
356(6)
12.6 Sparse Conditional Constant Propagation
362(9)
12.7 Wrap-Up
371(2)
12.8 Further Reading
373(1)
12.9 Exercises
374(3)
13 Redundancy Elimination
377(48)
13.1 Common-Subexpression Elimination
378(19)
13.2 Loop-Invariant Code Motion
397(10)
13.3 Partial-Redundancy Elimination
407(8)
13.4 Redundancy Elimination and Reassociation
415(2)
13.5 Code Hoisting
417(3)
13.6 Wrap-Up
420(2)
13.7 Further Reading
422(1)
13.8 Exercises
422(3)
14 Loop Optimizations
425(36)
14.1 Induction-Variable Optimizations
425(29)
14.2 Unnecessary Bounds-Checking Elimination
454(3)
14.3 Wrap-Up
457(2)
14.4 Further Reading
459(1)
14.5 Exercises
460(1)
15 Procedure Optimizations
461(20)
15.1 Tail-Call Optimization and Tail-Recursion Elimination
461(4)
15.2 Procedure Integration
465(5)
15.3 In-Line Expansion
470(2)
15.4 Leaf-Routine Optimization and Shrink Wrapping
472(4)
15.5 Wrap-Up
476(2)
15.6 Further Reading
478(1)
15.7 Exercises
478(3)
16 Register Allocation
481(50)
16.1 Register Allocation and Assignment
482(1)
16.2 Local Methods
483(2)
16.3 Graph Coloring
485(39)
16.4 Priority-Based Graph Coloring
524(1)
16.5 Other Approaches to Register Allocation
525(1)
16.6 Wrap-Up
526(2)
16.7 Further Reading
528(1)
16.8 Exercises
529(2)
17 Code Scheduling
531(48)
17.1 Instruction Scheduling
532(15)
17.2 Speculative Loads and Boosting
547(1)
17.3 Speculative Scheduling
548(1)
17.4 Software Pipelining
548(21)
17.5 Trace Scheduling
569(2)
17.6 Percolation Scheduling
571(2)
17.7 Wrap-Up
573(2)
17.8 Further Reading
575(1)
17.9 Exercises
576(3)
18 Control-Flow and Low-Level Optimizations
579(28)
18.1 Unreachable-Code Elimination
580(3)
18.2 Straightening
583(2)
18.3 If Simplifications
585(1)
18.4 Loop Simplifications
586(1)
18.5 Loop Inversion
587(1)
18.6 Unswitching
588(1)
18.7 Branch Optimizations
589(1)
18.8 Tail Merging or Cross Jumping
590(1)
18.9 Conditional Moves
591(1)
18.10 Dead-Code Elimination
592(5)
18.11 Branch Prediction
597(2)
18.12 Machine Idioms and Instruction Combining
599(3)
18.13 Wrap-Up
602(2)
18.14 Further Reading
604(1)
18.15 Exercises
605(2)
19 Interprocedural Analysis and Optimization
607(62)
19.1 Interprocedural Control-Flow Analysis: The Call Graph
609(10)
19.2 Interprocedural Data-Flow Analysis
619(18)
19.3 Interprocedural Constant Propagation
637(4)
19.4 Interprocedural Alias Analysis
641(15)
19.5 Interprocedural Optimizations
656(3)
19.6 Interprocedural Register Allocation
659(4)
19.7 Aggregation of Global References
663(1)
19.8 Other Issues in Interprocedural Program Management
663(1)
19.9 Wrap-Up
664(2)
19.10 Further Reading
666(1)
19.11 Exercises
667(2)
20 Optimization for the Memory Hierarchy
669(36)
20.1 Impact of Data and Instruction Caches
670(2)
20.2 Instruction-Cache Optimization
672(10)
20.3 Scalar Replacement of Array Elements
682(5)
20.4 Data-Cache Optimization
687(13)
20.5 Scalar vs. Memory-Oriented Optimizations
700(1)
20.6 Wrap-Up
700(3)
20.7 Further Reading
703(1)
20.8 Exercises
704(1)
21 Case Studies of Compilers and Future Trends
705(42)
21.1 The Sun Compilers for SPARC
707(9)
21.2 The IBM XL Compilers for the POWER and PowerPC Architectures
716(10)
21.3 Digital Equipment's Compilers for Alpha
726(8)
21.4 The Intel Reference Compilers for the Intel 386 Architecture Family
734(10)
21.5 Wrap-Up
744(1)
21.6 Future Trends in Compiler Design and Implementation
745(1)
21.7 Further Reading
746(1)
App. A Guide to Assembly Languages Used in This Book 747(10)
A.1 Sun SPARC Versions 8 and 9 Assembly Language 747(2)
A.2 IBM POWER and PowerPC Assembly Language 749(1)
A.3 DEC Alpha Assembly Language 750(2)
A.4 Intel 386 Architecture Assembly Language 752(1)
A.5 Hewlett-Packard's PA-RISC Assembly Language 753(4)
App. B Representation of Sets, Sequences, Trees, DAGs, and Functions 757(10)
B.1 Representation of Sets 759(4)
B.2 Representation of Sequences 763(1)
B.3 Representation of Trees and DAGs 763(1)
B.4 Representation of Functions 764(1)
B.5 Further Reading 765(2)
App. C Software Resources 767(6)
C.1 Finding and Accessing Software on the Internet 767(1)
C.2 Machine Simulators 767(1)
C.3 Compilers 768(1)
C.4 Code-Generator Generators: BURG and IBURG 769(1)
C.5 Profiling Tools 770(3)
List of Illustrations
773(24)
List of Tables
797(4)
Bibliography 801(20)
Technical Index of Mathematical Formulas and ICAN Procedures and Major Data Structures 821(6)
Subject Index 827

Check Out These Items!
eCampus.com Pink Backpack eCampus.com Pink Backpack
Retail Price $28.95
Our Price $10.00
eCampus.com T-Shirt eCampus.com T-Shirt
Retail Price $14.99
Our Price $2.00
eCampus.com 4GB USB Drive eCampus.com 4GB USB Drive
Retail Price $32.95
Our Price $25.00
  Buy Textbooks
  Sell Textbooks
  College Apparel
  Shop by School
  Virtual Bookstores
  Order Status
  Shipping Rates
  Return Policy
  Marketplace Info
  F.A.S.T.
  Contact Us
  Privacy Policy
  Legal Notices
  Site Security
  Employment
  Help Desk
  eCampus Blog
  Affiliate Program
  Bulk Orders
  College Marketing
HACKER SAFE certified sites prevent over 99.9% of hacker crime.
eCampus.com blog follow eCampus.com on twitter find eCampus.com on facebook RSS Need Help? eService@ecampus.com   Copyright© 1999-2008     
.