Advanced compiler design and implementation:
Gespeichert in:
Beteilige Person: | |
---|---|
Format: | Buch |
Sprache: | Englisch |
Veröffentlicht: |
San Francisco, Calif. [u.a.]
Morgan Kaufmann
2008
|
Ausgabe: | [Nachdr.] |
Schlagwörter: | |
Links: | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017657100&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
Umfang: | XXIX, 856 S. Ill., graph. Darst. |
ISBN: | 1558603204 9781558603202 9788131214039 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV035602073 | ||
003 | DE-604 | ||
005 | 20180403 | ||
007 | t| | ||
008 | 090706s2008 xx ad|| |||| 00||| eng d | ||
020 | |a 1558603204 |9 1-55860-320-4 | ||
020 | |a 9781558603202 |9 978-1-55860-320-2 | ||
020 | |a 9788131214039 |c Indian Reprint : Broschur : EUR 50.00 (DE) |9 978-81-312-1403-9 | ||
035 | |a (OCoLC)635059815 | ||
035 | |a (DE-599)BVBBV035602073 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-473 |a DE-860 | ||
084 | |a ST 255 |0 (DE-625)143629: |2 rvk | ||
100 | 1 | |a Muchnick, Steven S. |e Verfasser |4 aut | |
245 | 1 | 0 | |a Advanced compiler design and implementation |c Steven S. Muchnick |
250 | |a [Nachdr.] | ||
264 | 1 | |a San Francisco, Calif. [u.a.] |b Morgan Kaufmann |c 2008 | |
300 | |a XXIX, 856 S. |b Ill., graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Implementierung |g Informatik |0 (DE-588)4026663-1 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Compiler |0 (DE-588)4148248-7 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Übersetzerbau |0 (DE-588)4121803-6 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Übersetzerbau |0 (DE-588)4121803-6 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Compiler |0 (DE-588)4148248-7 |D s |
689 | 1 | 1 | |a Implementierung |g Informatik |0 (DE-588)4026663-1 |D s |
689 | 1 | |8 1\p |5 DE-604 | |
856 | 4 | 2 | |m Digitalisierung UB Bamberg |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017657100&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-017657100 |
Datensatz im Suchindex
_version_ | 1819255087792390144 |
---|---|
adam_text | Contents
Foreword by Susan Graham
vii
Preface
xxi
1
Introduction to Advanced Topics
1
1.1
Review of Compiler Structure
1
1.2
Advanced Issues in Elementary Topics
3
1.3
The Importance of Code Optimization
6
1.4
Structure of Optimizing Compilers
7
1.5
Placement of Optimizations in Aggressive
Optimizing Compilers
11
1.6
Reading Flow Among the Chapters
14
1.7
Related Topics Not Covered in This Text
16
1.8
Target Machines Used in Examples
16
1.9
Number Notations and Data Sizes
16
1.10
Wrap-Up
17
1.11
Further Reading
18
1.12
Exercises
18
2
Informal Compiler Algorithm Notation (ICAN)
19
2.1
Extended Backus-Naur Form Syntax Notation
19
2.2
Introduction to ICAN
20
2.3
A Quick Overview of ICAN
23
2.4
Whole Programs
25
2.5
Type Definitions
25
2.6
Declarations
26
xi
xii Contents
2.7 Data
Types and Expressions
27
2.8
Statements
36
2.9
Wrap-Up
41
2.10
Further Reading
41
2.11
Exercises
41
3
Symbol-Table Structure
43
3.1
Storage Classes, Visibility, and Lifetimes
43
3.2
Symbol Attributes and Symbol-Table Entries
45
3.3
Local Symbol-Table Management
47
3.4
Global Symbol-Table Structure
49
3.5
Storage Binding and Symbolic Registers
54
3.6
Approaches to Generating Loads and Stores
59
3.7
Wrap-Up
64
3.8
Further Reading
64
3.9
Exercises
64
4
Intermediate Representations
67
4.1
Issues in Designing an Intermediate Language
67
4.2
High-Level Intermediate Languages
69
4.3
Medium-Level Intermediate Languages
71
4.4
Low-Level Intermediate Languages
71
4.5
Multi-Level Intermediate Languages
72
4.6
Our Intermediate Languages:
MIR, HIR,
and
LIR
73
4.7
Representing
MIR, HIR,
and
LIR
in ICAN
81
4.8
ICAN Naming of Data Structures and Routines that Manipulate
Intermediate Code
92
4.9
Other Intermediate-Language Forms
96
4.10
Wrap-Up
101
4.11
Further Reading
102
4.12
Exercises
102
5
Run-Time Support
105
5.1
Data Representations and Instructions
106
5.2
Register Usage
109
Contents xiii
5.3
The Local
Stack Frame
111
5.4 The Run-Time Stack 114
5.5
Parameter-Passing Disciplines
116
5.6
Procedure
Prologues, Epilogues, Calls, and
Returns
119
5.7
Code Sharing and Position-Independent Code
127
5.8
Symbolic and Polymorphic Language Support
131
5.9
Wrap-Up
133
5.10
Further Reading
134
5.11
Exercises
135
6
Producing Code Generators Automatically
137
6.1
Introduction to Automatic Generation of Code Generators
138
6.2
A Syntax-Directed Technique
139
6.3
Introduction to Semantics-Directed Parsing
159
6.4
Tree Pattern Matching and Dynamic Programming
160
6.5
Wrap-Up
165
6.6
Further Reading
166
6.7
Exercises
166
7
Control-Flow Analysis
169
7.1
Approaches to Control-Flow Analysis
172
7.2
Depth-First Search, Preorder Traversal,
Postorder
Traversal, and
Breadth-First Search
177
7.3
Dominators and Postdominators
181
7.4
Loops and Strongly Connected Components
191
7.5
Reducibility
196
7.6
Interval Analysis and Control Trees
197
7.7
Structural Analysis
202
7.8
Wrap-Up
214
7.9
Further Reading
214
7.10
Exercises
215
8
Data-Flow Analysis
217
8.1
An Example: Reaching Definitions
218
8.2
Basic Concepts: Lattices, Flow Functions, and Fixed Points
223
xiv Contents
8.3
Taxonomy of Data-Flow Problems and Solution Methods
228
8.4
Iterative Data-Flow Analysis
231
8.5
Lattices of Flow Functions
235
8.6
Control-Tree-Based Data-Flow Analysis
236
8.7
Structural Analysis
236
8.8
Interval Analysis
249
8.9
Other Approaches
250
8.10
Du-Chains, Ud-Chains, and Webs
251
8.11
Static Single-Assignment (SSA) Form
252
8.12
Dealing with Arrays, Structures, and Pointers
258
8.13
Automating Construction of Data-Flow Analyzers
259
8.14
More Ambitious Analyses
261
8.15
Wrap-Up
263
8.16
Further Reading
264
8.17
Exercises
265
кѓ-Ѕ;
Dependence Analysis and Dependence Graphs
267
9.1
Dependence Relations
267
9.2
Basic-Block Dependence DAGs
269
9.3
Dependences in Loops
274
9.4
Dependence Testing
279
9.5
Program-Dependence Graphs
284
9.6
Dependences Between Dynamically Allocated Objects
286
9.7
Wrap-Up
288
9.8
Further Reading
289
9.9
Exercises
290
10
Alias Analysis
293
10.1
Aliases in Various Real Programming Languages
297
10.2
The Alias Gatherer
302
10.3
The Alias Propagator
307
10.4
Wrap-Up
314
10.5
Further Reading
315
10.6
Exercises
316
Contents xv
Иї
Introduction
to Optimization
319
11.1
Global Optimizations Discussed in Chapters
12
Through
18 321
11.2
Flow Sensitivity and May vs. Must Information
323
11.3
Importance of Individual Optimizations
323
11.4
Order and Repetition of Optimizations
325
11.5
Further Reading
328
11.6
Exercises
328
12
Early Optimizations
329
12.1
Constant-Expression Evaluation (Constant Folding)
329
12.2
Scalar Replacement of Aggregates
331
12.3
Algebraic Simplifications and
Reassociation
333
12.4
Value Numbering
343
12.5
Copy Propagation
356
12.6
Sparse Conditional Constant Propagation
362
12.7
Wrap-Up
371
12.8
Further Reading
373
12.9
Exercises
374
13
Redundancy Elimination
377
13.1
Common-Subexpression Elimination
378
13.2
Loop-Invariant Code Motion
397
13.3
Partial-Redundancy Elimination
407
13.4
Redundancy Elimination and
Reassociation
415
13.5
Code Hoisting
417
13.6
Wrap-Up
420
13.7
Further Reading
422
13.8
Exercises
422
14
Loop Optimizations
425
14.1
Induction-Variable Optimizations
425
14.2
Unnecessary Bounds-Checking Elimination
454
14.3
Wrap-Up
457
14.4
Further Reading
459
14.5
Exercises
460
xvi Contents
15
Procedure
Optimizations
461
15.1
Tail-Call Optimization and Tail-Recursion Elimination
461
15.2
Procedure Integration
465
15.3
In-Line Expansion
470
15.4
Leaf-Routine Optimization and Shrink Wrapping
472
15.5
Wrap-Up
476
15.6
Further Reading
478
15.7
Exercises
478
16
Register Allocation
481
16.1
Register Allocation and Assignment
482
16.2
Local Methods
483
16.3
Graph Coloring
485
16.4
Priority-Based Graph Coloring
524
16.5
Other Approaches to Register Allocation
525
16.6
Wrap-Up
526
16.7
Further Reading
528
16.8
Exercises
529
17
Code Scheduling
531
17.1
Instruction Scheduling
532
17.2
Speculative Loads and Boosting
547
17.3
Speculative Scheduling
548
17.4
Software Pipelining
548
17.5
Trace Scheduling
569
17.6
Percolation Scheduling
571
17.7
Wrap-Up
573
17.8
Further Reading
575
17.9
Exercises
576
18
Control-Flow and Low-Level Optimizations
579
18.1
Unreachable-Code Elimination
580
18.2
Straightening
583
18.3
If Simplifications
585
18.4
Loop Simplifications
586
Contents xvii
18.5
Loop
Inversion 587
18.6 Unswitching 588
18.7
Branch Optimizations
589
18.8
Tail Merging or Cross Jumping
590
18.9
Conditional Moves
591
18.10
Dead-Code Elimination
592
18.11
Branch Prediction
597
18.12
Machine Idioms and Instruction Combining
599
18.13
Wrap-Up
602
18.14
Further Reading
604
18.15
Exercises
605
19
Interprocedural Analysis and Optimization
607
19.1
Interprocedural Control-Flow Analysis: The Call Graph
609
19.2
Interprocedural Data-Flow Analysis
619
19.3
Interprocedural Constant Propagation
637
19.4
Interprocedural Alias Analysis
641
19.5
Interprocedural Optimizations
656
19.6
Interprocedural Register Allocation
659
19.7
Aggregation of Global References
663
19.8
Other Issues in Interprocedural Program Management
663
19.9
Wrap-Up
664
19.10
Further Reading
666
19.11
Exercises
667
20
Optimization for the Memory Hierarchy
669
20.1
Impact of Data and Instruction Caches
670
20.2
Instruction-Cache Optimization
672
20.3
Scalar Replacement of Array Elements
682
20.4
Data-Cache Optimization
687
20.5
Scalar vs. Memory-Oriented Optimizations
700
20.6
Wrap-Up
700
20.7
Further Reading
703
20.8
Exercises
704
xviii Contents
21
Case Studies of Compilers and Future Trends
705
21.1
The Sun Compilers for SPARC
707
21.2
The IBM XL Compilers for the POWER and PowerPC
Architectures
716
21.3
Digital Equipment s Compilers for Alpha
726
21.4
The Intel Reference Compilers for the Intel
386
Architecture
Family
734
21.5
Wrap-Up
744
21.6
Future Trends in Compiler Design and Implementation
745
21.7
Further Reading
746
App.
A Guide to Assembly Languages Used in This Book
747
A.I Sun SPARC Versions
8
and
9
Assembly Language
747
A.2 IBM POWER and PowerPC Assembly Language
749
A.3 DEC Alpha Assembly Language
750
A.4 Intel
386
Architecture Assembly Language
752
A.5 Hewlett-Packard s PA-RISC Assembly Language
753
App.
В
Representation of Sets, Sequences, Trees, DAGs, and
Functions
757
B.I Representation of Sets
759
B.2 Representation of Sequences
763
B.3 Representation of Trees and DAGs
763
B.4 Representation of Functions
764
B.5 Further Reading
765
App.
С
Software Resources
767
C.I Finding and Accessing Software on the Internet
767
C.2 Machine Simulators
767
C.3 Compilers
768
C.4 Code-Generator Generators: BURG and IBURG
769
C.5 Profiling Tools
770
List of Illustrations
773
Contents xix
List of Tables
797
Bibliography
801
Technical Index of Mathematical Formulas and ican Procedures
and Major Data Structures
821
Subject Index
827
|
any_adam_object | 1 |
author | Muchnick, Steven S. |
author_facet | Muchnick, Steven S. |
author_role | aut |
author_sort | Muchnick, Steven S. |
author_variant | s s m ss ssm |
building | Verbundindex |
bvnumber | BV035602073 |
classification_rvk | ST 255 |
ctrlnum | (OCoLC)635059815 (DE-599)BVBBV035602073 |
discipline | Informatik |
edition | [Nachdr.] |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01731nam a2200421 c 4500</leader><controlfield tag="001">BV035602073</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20180403 </controlfield><controlfield tag="007">t|</controlfield><controlfield tag="008">090706s2008 xx ad|| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1558603204</subfield><subfield code="9">1-55860-320-4</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781558603202</subfield><subfield code="9">978-1-55860-320-2</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9788131214039</subfield><subfield code="c">Indian Reprint : Broschur : EUR 50.00 (DE)</subfield><subfield code="9">978-81-312-1403-9</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)635059815</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV035602073</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-473</subfield><subfield code="a">DE-860</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 255</subfield><subfield code="0">(DE-625)143629:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Muchnick, Steven S.</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Advanced compiler design and implementation</subfield><subfield code="c">Steven S. Muchnick</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">[Nachdr.]</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">San Francisco, Calif. [u.a.]</subfield><subfield code="b">Morgan Kaufmann</subfield><subfield code="c">2008</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXIX, 856 S.</subfield><subfield code="b">Ill., graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Implementierung</subfield><subfield code="g">Informatik</subfield><subfield code="0">(DE-588)4026663-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Compiler</subfield><subfield code="0">(DE-588)4148248-7</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Übersetzerbau</subfield><subfield code="0">(DE-588)4121803-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Übersetzerbau</subfield><subfield code="0">(DE-588)4121803-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Compiler</subfield><subfield code="0">(DE-588)4148248-7</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="1"><subfield code="a">Implementierung</subfield><subfield code="g">Informatik</subfield><subfield code="0">(DE-588)4026663-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bamberg</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017657100&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-017657100</subfield></datafield></record></collection> |
id | DE-604.BV035602073 |
illustrated | Illustrated |
indexdate | 2024-12-20T13:38:45Z |
institution | BVB |
isbn | 1558603204 9781558603202 9788131214039 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-017657100 |
oclc_num | 635059815 |
open_access_boolean | |
owner | DE-473 DE-BY-UBG DE-860 |
owner_facet | DE-473 DE-BY-UBG DE-860 |
physical | XXIX, 856 S. Ill., graph. Darst. |
publishDate | 2008 |
publishDateSearch | 2008 |
publishDateSort | 2008 |
publisher | Morgan Kaufmann |
record_format | marc |
spellingShingle | Muchnick, Steven S. Advanced compiler design and implementation Implementierung Informatik (DE-588)4026663-1 gnd Compiler (DE-588)4148248-7 gnd Übersetzerbau (DE-588)4121803-6 gnd |
subject_GND | (DE-588)4026663-1 (DE-588)4148248-7 (DE-588)4121803-6 |
title | Advanced compiler design and implementation |
title_auth | Advanced compiler design and implementation |
title_exact_search | Advanced compiler design and implementation |
title_full | Advanced compiler design and implementation Steven S. Muchnick |
title_fullStr | Advanced compiler design and implementation Steven S. Muchnick |
title_full_unstemmed | Advanced compiler design and implementation Steven S. Muchnick |
title_short | Advanced compiler design and implementation |
title_sort | advanced compiler design and implementation |
topic | Implementierung Informatik (DE-588)4026663-1 gnd Compiler (DE-588)4148248-7 gnd Übersetzerbau (DE-588)4121803-6 gnd |
topic_facet | Implementierung Informatik Compiler Übersetzerbau |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=017657100&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT muchnickstevens advancedcompilerdesignandimplementation |