日韩精品 中文字幕 动漫,91亚洲午夜一区,在线不卡日本v一区v二区丶,久久九九国产精品自在现拍

注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計匯編語言/編譯原理高級編譯器設(shè)計與實現(xiàn):英文版

高級編譯器設(shè)計與實現(xiàn):英文版

高級編譯器設(shè)計與實現(xiàn):英文版

定 價:¥80.00

作 者: (美)Steven S.Muchnick著
出版社: 機械工業(yè)出版社
叢編項: 經(jīng)典原版書庫
標(biāo) 簽: 暫缺

ISBN: 9787111127710 出版時間: 2003-09-01 包裝: 平裝
開本: 24cm 頁數(shù): 856 字?jǐn)?shù):  

內(nèi)容簡介

  本書是經(jīng)典的編譯器著作,與”龍書”齊名。書中針對現(xiàn)代語言和體系結(jié)構(gòu)全面介紹了編譯器設(shè)計與實現(xiàn)的高級論題,從編譯器的基礎(chǔ)領(lǐng)域中的高級問題開始,然后深入討論了各種重要的代碼優(yōu)化。本書專為編譯器專業(yè)人士和計算機專業(yè)本科生、研究生編寫,在設(shè)計和實現(xiàn)高度優(yōu)化的編譯器以及確定優(yōu)化的重要性和實現(xiàn)優(yōu)化的最有效的方法等方面,為讀者提供了非常有價值的指導(dǎo)。本書的主要特點:為理解高級編譯器設(shè)計的主要問題奠定了基礎(chǔ)。深入闡述了優(yōu)化問題。使用四個商業(yè)編譯器(包括Sun的SPARC,IBM的POWER和PowerPC。DEC的Alpha以及Intel的Pentium和相關(guān)處理器上的編譯器)的實例分析說明了編譯器結(jié)構(gòu)。中間代碼設(shè)計和優(yōu)化的各種方法。給出了大量的定義明確的代碼生成。優(yōu)化和其他方面的算法。用InformalCompilerAlgorthmNotation(ICAN)(一種由作者設(shè)計的語言)來以清晰。簡潔的方式表達(dá)算法。作者簡介:StevenS.Muchnick具有豐富而廣博的經(jīng)驗。他曾經(jīng)是計算機科學(xué)教授,‘后來他將自己的知識和經(jīng)驗應(yīng)用于編譯器設(shè)計,成為兩種計算機體系結(jié)構(gòu)(惠普的PA-RISC和Sun的SPARC)開發(fā)團隊的核心成員,并擔(dān)任這些系統(tǒng)的高級編譯器設(shè)計與實現(xiàn)的領(lǐng)導(dǎo)人。他的研究和開發(fā)經(jīng)驗對于指導(dǎo)讀者做出編譯器設(shè)計決策極具價值。

作者簡介

  Steven S.Muchnick具有豐富而廣博的經(jīng)驗。他曾經(jīng)是計算機科學(xué)教授,后來他將自己的知識和經(jīng)驗應(yīng)用于編譯器設(shè)計,成為兩種計算機體系結(jié)構(gòu)開發(fā)團隊的核心成員,并擔(dān)任這些系統(tǒng)的高級編譯器設(shè)計與實現(xiàn)的領(lǐng)導(dǎo)人,他的研究和開發(fā)經(jīng)驗對于指導(dǎo)讀者做出編譯器設(shè)計決策極具價值。

圖書目錄

Foreword by Susan Graham vii
Preface x
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
  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
  5.3    The,Local Stack Fr ame  111
  5.4    The Run-Time Stack  114
  5.5    Parameter-PassingDisciplines  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
  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
9 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
11  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 Optimizatious  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
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
  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
21 Case Studies of Compilers and Future Trends   105
  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.1    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.B Representation of Sets, Sequences, Trees, DAGs, and Functions   757
  B.1    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.C Software Resources   767
  C.1   Finding and Accessing Software on the Intemet  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
  List of Tables  797
  Bibliography  801
  Technical Index of Mathematical Formulas and ICAN Procedures and Major Data Structures  821
  Subject Index  827

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) rgspecialties.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號