Engineering a CompilerMorgan Kaufmann, 20.08.2022 - 848 Seiten Engineering a Compiler, Third Edition covers the latest developments in compiler technology, with new chapters focusing on semantic elaboration (the problems that arise in generating code from the ad-hoc syntax-directed translation schemes in a generated parser), on runtime support for naming and addressability, and on code shape for expressions, assignments and control-structures. Leading educators and researchers, Keith Cooper and Linda Torczon, have revised this popular text with a fresh approach to learning important techniques for constructing a modern compiler, combining basic principles with pragmatic insights from their own experience building state-of-the-art compilers. - Presents in-depth treatments of algorithms and techniques used in the front end of a modern compiler - Pays particular attention to code optimization and code generation, both primary areas of recent research and development - Focuses on how compilers (and interpreters) implement abstraction, tying the underlying knowledge to students' own experience and to the languages in which they have been taught to program - Covers bottom-up methods of register allocation at the local scope |
Inhalt
| 1 | |
| 27 | |
3 Parsers | 85 |
4 Intermediate Representations | 159 |
5 SyntaxDriven Translation | 209 |
6 Implementing Procedures | 275 |
7 Code Shape | 327 |
8 Introduction to Optimization | 379 |
11 Instruction Selection | 575 |
12 Instruction Scheduling | 617 |
13 Register Allocation | 663 |
14 Runtime Optimization | 713 |
A ILOC | 757 |
B Data Structures | 769 |
Bibliography | 793 |
| 815 | |
Andere Ausgaben - Alle anzeigen
Häufige Begriffe und Wortgruppen
algorithm analysis AOT compiler array assignment block branch build cache callee coloring compiler writer computation constant constant propagation construction control-flow cost create cycle data area data-flow data-flow analysis defined definition edge efficient eliminate entry evaluation example execution Expr expression function global grammar graph ILOC implementation inline input insert instruction selection integer interprocedural iteration jump label left recursion lexical live ranges LIVEOUT load loadI loop memory method multiple name space node Ø Ø operands optimization p-function Pair panel parameter parse tree parser path peephole optimization pointer problem procedure processor produce Programming Languages rarp redundant register allocation result rewrite rule runtime scanner scheme scope Section sequence shown in Fig SIGPLAN simplify specific spill SSA form stack static Stmt string symbol syntax target techniques terminal symbol three-address code tion transformation translation value numbering worklist
