Engineering a Compiler -  Keith D. Cooper,  Linda Torczon

Engineering a Compiler (eBook)

eBook Download: PDF | EPUB
2011 | 2. Auflage
824 Seiten
Elsevier Science (Verlag)
978-0-08-091661-3 (ISBN)
Systemvoraussetzungen
Systemvoraussetzungen
55,99 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

This entirely revised second edition of Engineering a Compiler is full of technical updates and new material covering the latest developments in compiler technology. In this comprehensive text you will learn important techniques for constructing a modern compiler. Leading educators and researchers Keith Cooper and Linda Torczon combine basic principles with pragmatic insights from their experience building state-of-the-art compilers. They will help you fully understand important techniques such as compilation of imperative and object-oriented languages, construction of static single assignment forms, instruction scheduling, and graph-coloring register allocation.

  • In-depth treatment of algorithms and techniques used in the front end of a modern compiler
  • Focus on code optimization and code generation, the primary areas of recent research and development
  • Improvements in presentation including conceptual overviews for each chapter, summaries and review questions for sections, and prominent placement of definitions for new terms
  • Examples drawn from several different programming languages


  • Dr. Cooper, Professor, Dept. of Computer Science at Rice University, is the leader of the Massively Scalar Compiler Project at Rice, which investigates issues relating to optimization and code generation for modern machines. He is also a member of the Center for High Performance Software Research, the Computer and Information Technology Institute, and the Center for Multimedia Communication -- all at Rice. He teaches courses in Compiler Construction at the undergraduate and graduate level.
    This entirely revised second edition of Engineering a Compiler is full of technical updates and new material covering the latest developments in compiler technology. In this comprehensive text you will learn important techniques for constructing a modern compiler. Leading educators and researchers Keith Cooper and Linda Torczon combine basic principles with pragmatic insights from their experience building state-of-the-art compilers. They will help you fully understand important techniques such as compilation of imperative and object-oriented languages, construction of static single assignment forms, instruction scheduling, and graph-coloring register allocation. In-depth treatment of algorithms and techniques used in the front end of a modern compiler Focus on code optimization and code generation, the primary areas of recent research and development Improvements in presentation including conceptual overviews for each chapter, summaries and review questions for sections, and prominent placement of definitions for new terms Examples drawn from several different programming languages

    Front Cover 1
    About the Authors 5
    Engineering a Compiler 6
    Copyright 7
    Dedication 8
    About the Cover 9
    Table of Contents 10
    Preface 20
    Chapter 1. Overview of Compilation 26
    1.1 Introduction 26
    1.2 Compiler Structure 31
    1.3 Overview of Translation 34
    1.4 Summary and Perspective 46
    Chapter Notes 47
    Exercises 48
    Chapter 2. Scanners 50
    2.1 Introduction 50
    2.2 Recognizing Words 52
    2.3 Regular Expressions 59
    2.4 From Regular Expression to Scanner 67
    2.5 Implementing Scanners 84
    2.6 Advanced Topics 99
    2.7 Chapter Summary and Perspective 103
    Chapter Notes 103
    Exercises 105
    Chapter 3. Parsers 108
    3.1 Introduction 108
    3.2 Expressing Syntax 110
    3.3 Top-Down Parsing 121
    3.4 Bottom-Up Parsing 141
    3.5 Practical Issues 166
    3.6 Advanced Topics 172
    3.7 Summary and Perspective 180
    Chapter Notes 181
    Exercises 182
    Chapter 4. Context-Sensitive Analysis 186
    4.1 Introduction 186
    4.2 An Introduction to Type Systems 189
    4.3 The Attribute-Grammar Framework 207
    4.4 Ad Hoc Syntax-Directed Translation 223
    4.5 Advanced Topics 236
    4.6 Summary and Perspective 240
    Chapter Notes 241
    Exercises 242
    Chapter 5. Intermediate Representations 246
    5.1 Introduction 246
    5.2 Graphical IRs 251
    5.3 Linear IRs 260
    5.4 Mapping Values to Names 268
    5.5 Symbol Tables 278
    5.6 Summary and Perspective 289
    Chapter Notes 289
    Exercises 290
    Chapter 6. The Procedure Abstraction 294
    6.1 Introduction 294
    6.2 Procedure Calls 297
    6.3 Name Spaces 301
    6.4 Communicating Values Between Procedures 322
    6.5 Standardized Linkages 333
    6.6 Advanced Topics 337
    6.7 Summary and Perspective 347
    Chapter Notes 348
    Exercises 349
    Chapter 7. Code Shape 356
    7.1 Introduction 356
    7.2 Assigning Storage Locations 359
    7.3 Arithmetic Operators 367
    7.4 Boolean and Relational Operators 375
    7.5 Storing and Accessing Arrays 384
    7.6 Character Strings 394
    7.7 Structure References 399
    7.8 Control-Flow Constructs 405
    7.9 Procedure Calls 417
    7.10 Summary and Perspective 421
    Chapter Notes 422
    Exercises 423
    Chapter 8. Introduction to Optimization 430
    8.1 Introduction 430
    8.2 Background 432
    8.3 Scope of Optimization 442
    8.4 Local Optimization 445
    8.5 Regional Optimization 462
    8.6 Global Optimization 470
    8.7 Interprocedural Optimization 482
    8.8 Summary and Perspective 494
    Chapter Notes 495
    Exercises 496
    Chapter 9. Data-Flow Analysis 500
    9.1 Introduction 500
    9.2 Iterative Data-Flow Analysis 502
    9.3 Static Single-Assignment Form 520
    9.4 Interprocedural Analysis 544
    9.5 Advanced Topics 551
    9.6 Summary and Perspective 558
    Chapter Notes 559
    Exercises 560
    Chapter 10. Scalar Optimizations 564
    10.1 Introduction 564
    10.2 Eliminating Useless and Unreachable Code 569
    10.3 Code Motion 576
    10.4 Specialization 585
    10.5 Redundancy Elimination 590
    10.6 Enabling Other Transformations 594
    10.7 Advanced Topics 600
    10.8 Summary and Perspective 617
    Chapter Notes 618
    Exercises 619
    Chapter 11. Instruction Selection 622
    11.1 Introduction 622
    11.2 Code Generation 625
    11.3 Extending the Simple Treewalk Scheme 628
    11.4 Instruction Selection via Tree-Pattern Matching 635
    11.5 Instruction Selection via Peephole Optimization 646
    11.6 Advanced Topics 657
    11.7 Summary and Perspective 659
    Chapter Notes 660
    Exercises 662
    Chapter 12. Instruction Scheduling 664
    12.1 Introduction 664
    12.2 The Instruction-Scheduling Problem 668
    12.3 Local List Scheduling 676
    12.4 Regional Scheduling 686
    12.5 Advanced Topics 691
    12.6 Summary and Perspective 698
    Chapter Notes 698
    Exercises 700
    Chapter 13. Register Allocation 704
    13.1 Introduction 704
    13.2 Background Issues 706
    13.3 Local Register Allocation and Assignment 709
    13.4 Global Register Allocation and Assignment 718
    13.5 Advanced Topics 738
    13.6 Summary and Perspective 743
    Chapter Notes 744
    Exercises 745
    Appendix A. ILOC 750
    A.1 Introduction 750
    A.2 Naming Conventions 752
    A.3 Individual Operations 753
    A.4 Control-Flow Operations 756
    A.5 Representing SSA Form 758
    Appendix B. Data Structures 762
    B.1 Introduction 762
    B.2 Representing Sets 763
    B.3 Implementing Intermediate Representations 768
    B.4 Implementing Hash Tables 775
    B.5 A Flexible Symbol-Table Design 785
    Appendix Notes 787
    Bibliography 790
    Index 812

    Erscheint lt. Verlag 18.1.2011
    Sprache englisch
    Themenwelt Sachbuch/Ratgeber
    Mathematik / Informatik Informatik Betriebssysteme / Server
    Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
    Mathematik / Informatik Informatik Software Entwicklung
    Informatik Theorie / Studium Compilerbau
    Technik
    ISBN-10 0-08-091661-9 / 0080916619
    ISBN-13 978-0-08-091661-3 / 9780080916613
    Haben Sie eine Frage zum Produkt?
    PDFPDF (Adobe DRM)
    Größe: 9,0 MB

    Kopierschutz: Adobe-DRM
    Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
    Details zum Adobe-DRM

    Dateiformat: PDF (Portable Document Format)
    Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

    Systemvoraussetzungen:
    PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine Adobe-ID und die Software Adobe Digital Editions (kostenlos). Von der Benutzung der OverDrive Media Console raten wir Ihnen ab. Erfahrungsgemäß treten hier gehäuft Probleme mit dem Adobe DRM auf.
    eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
    Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine Adobe-ID sowie eine kostenlose App.
    Geräteliste und zusätzliche Hinweise

    Buying eBooks from abroad
    For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

    EPUBEPUB (Adobe DRM)
    Größe: 12,5 MB

    Kopierschutz: Adobe-DRM
    Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
    Details zum Adobe-DRM

    Dateiformat: EPUB (Electronic Publication)
    EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belle­tristik und Sach­büchern. Der Fließ­text wird dynamisch an die Display- und Schrift­größe ange­passt. Auch für mobile Lese­geräte ist EPUB daher gut geeignet.

    Systemvoraussetzungen:
    PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine Adobe-ID und die Software Adobe Digital Editions (kostenlos). Von der Benutzung der OverDrive Media Console raten wir Ihnen ab. Erfahrungsgemäß treten hier gehäuft Probleme mit dem Adobe DRM auf.
    eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
    Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine Adobe-ID sowie eine kostenlose App.
    Geräteliste und zusätzliche Hinweise

    Buying eBooks from abroad
    For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

    Mehr entdecken
    aus dem Bereich
    An In-Depth Guide to the Spring Framework

    von Iuliana Cosmina; Rob Harrop; Clarence Ho; Chris Schaefer

    eBook Download (2023)
    Apress (Verlag)
    62,99