Engineering a Compiler
- 0 %
Der Artikel wird am Ende des Bestellprozesses zum Download zur Verfügung gestellt.

Engineering a Compiler

 PDF
Sofort lieferbar | Lieferzeit: Sofort lieferbar I
ISBN-13:
9780080916613
Veröffentl:
2011
Einband:
PDF
Seiten:
824
Autor:
Keith D. Cooper
eBook Typ:
PDF
eBook Format:
PDF
Kopierschutz:
Adobe DRM [Hard-DRM]
Sprache:
Englisch
Beschreibung:

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
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
1;Front Cover;12;About the Authors;53;Engineering a Compiler;64;Copyright;75;Dedication;86;About the Cover;97;Table of Contents;108;Preface;209;Chapter 1. Overview of Compilation;269.1;1.1 Introduction;269.2;1.2 Compiler Structure;319.3;1.3 Overview of Translation;349.4;1.4 Summary and Perspective;469.5;Chapter Notes;479.6;Exercises;4810;Chapter 2. Scanners;5010.1;2.1 Introduction;5010.2;2.2 Recognizing Words;5210.3;2.3 Regular Expressions;5910.4;2.4 From Regular Expression to Scanner;6710.5;2.5 Implementing Scanners;8410.6;2.6 Advanced Topics;9910.7;2.7 Chapter Summary and Perspective;10310.8;Chapter Notes;10310.9;Exercises;10511;Chapter 3. Parsers;10811.1;3.1 Introduction;10811.2;3.2 Expressing Syntax;11011.3;3.3 Top-Down Parsing;12111.4;3.4 Bottom-Up Parsing;14111.5;3.5 Practical Issues;16611.6;3.6 Advanced Topics;17211.7;3.7 Summary and Perspective;18011.8;Chapter Notes;18111.9;Exercises;18212;Chapter 4. Context-Sensitive Analysis;18612.1;4.1 Introduction;18612.2;4.2 An Introduction to Type Systems;18912.3;4.3 The Attribute-Grammar Framework;20712.4;4.4 Ad Hoc Syntax-Directed Translation;22312.5;4.5 Advanced Topics;23612.6;4.6 Summary and Perspective;24012.7;Chapter Notes;24112.8;Exercises;24213;Chapter 5. Intermediate Representations;24613.1;5.1 Introduction;24613.2;5.2 Graphical IRs;25113.3;5.3 Linear IRs;26013.4;5.4 Mapping Values to Names;26813.5;5.5 Symbol Tables;27813.6;5.6 Summary and Perspective;28913.7;Chapter Notes;28913.8;Exercises;29014;Chapter 6. The Procedure Abstraction;29414.1;6.1 Introduction;29414.2;6.2 Procedure Calls;29714.3;6.3 Name Spaces;30114.4;6.4 Communicating Values Between Procedures;32214.5;6.5 Standardized Linkages;33314.6;6.6 Advanced Topics;33714.7;6.7 Summary and Perspective;34714.8;Chapter Notes;34814.9;Exercises;34915;Chapter 7. Code Shape;35615.1;7.1 Introduction;35615.2;7.2 Assigning Storage Locations;35915.3;7.3 Arithmetic Operators;36715.4;7.4 Boolean and Relational Operators;37515.5;7.5 Storing and Accessing Arrays;38415.6;7.6 Character Strings;39415.7;7.7 Structure References;39915.8;7.8 Control-Flow Constructs;40515.9;7.9 Procedure Calls;41715.10;7.10 Summary and Perspective;42115.11;Chapter Notes;42215.12;Exercises;42316;Chapter 8. Introduction to Optimization;43016.1;8.1 Introduction;43016.2;8.2 Background;43216.3;8.3 Scope of Optimization;44216.4;8.4 Local Optimization;44516.5;8.5 Regional Optimization;46216.6;8.6 Global Optimization;47016.7;8.7 Interprocedural Optimization;48216.8;8.8 Summary and Perspective;49416.9;Chapter Notes;49516.10;Exercises;49617;Chapter 9. Data-Flow Analysis;50017.1;9.1 Introduction;50017.2;9.2 Iterative Data-Flow Analysis;50217.3;9.3 Static Single-Assignment Form;52017.4;9.4 Interprocedural Analysis;54417.5;9.5 Advanced Topics;55117.6;9.6 Summary and Perspective;55817.7;Chapter Notes;55917.8;Exercises;56018;Chapter 10. Scalar Optimizations;56418.1;10.1 Introduction;56418.2;10.2 Eliminating Useless and Unreachable Code;56918.3;10.3 Code Motion;57618.4;10.4 Specialization;58518.5;10.5 Redundancy Elimination;59018.6;10.6 Enabling Other Transformations;59418.7;10.7 Advanced Topics;60018.8;10.8 Summary and Perspective;61718.9;Chapter Notes;61818.10;Exercises;61919;Chapter 11. Instruction Selection;62219.1;11.1 Introduction;62219.2;11.2 Code Generation;62519.3;11.3 Extending the Simple Treewalk Scheme;62819.4;11.4 Instruction Selection via Tree-Pattern Matching;63519.5;11.5 Instruction Selection via Peephole Optimization;64619.6;11.6 Advanced Topics;65719.7;11.7 Summary and Perspective;65919.8;Chapter Notes;66019.9;Exercises;66220;Chapter 12. Instruction Scheduling;66420.1;12.1 Introduction;66420.2;12.2 The Instruction-Scheduling Problem;66820.3;12.3 Local List Scheduling;67620.4;12.4 Regional Scheduling;68620.5;12.5 Advanced Topics;69120.6;12.6 Summary and Perspective;69820.7;Chapter Notes;69820.8;Exercises;70021;Chapter 13. Registe

Kunden Rezensionen

Zu diesem Artikel ist noch keine Rezension vorhanden.
Helfen sie anderen Besuchern und verfassen Sie selbst eine Rezension.