Check nearby libraries
Buy this book
This edition doesn't have a description yet. Can you add one?
Check nearby libraries
Buy this book
Previews available in: English
Showing 4 featured editions. View all 4 editions?
Edition | Availability |
---|---|
1 |
aaaa
Libraries near you:
WorldCat
|
2 |
cccc
Libraries near you:
WorldCat
|
3 |
zzzz
|
4 |
zzzz
Libraries near you:
WorldCat
|
Book Details
Table of Contents
Chapter 1.
Introduction to Compilers
1.1.
Compilers and Translators
Page 1
1.2.
Why Do We Need Translators?
Page 3
1.3.
The Structure of a Compiler
Page 5
1.4.
Lexical Analysis
Page 10
1.5.
Syntax Analysis
Page 12
1.6.
Intermediate Code Generation
Page 13
1.7.
Optimization
Page 17
1.8.
Code Generation
Page 19
1.9.
Bookkeeping
Page 20
1.10.
Error Handling
Page 21
1.11.
Compiler-Writing Tools
Page 21
1.12.
Getting Started
Page 23
Chapter 2.
Programming Languages
2.1.
High-Level Programming Languages
Page 26
2.2.
Definitions of Programming Languages
Page 28
2.3.
The Lexical and Syntactic Structure of a Language
Page 32
2.4.
Data Elements
Page 34
2.5.
Data Structures
Page 38
2.6.
Operators
Page 45
2.7.
Assignment
Page 50
2.8.
Statements
Page 53
2.9.
Program Units
Page 55
2.10.
Data Environments
Page 57
2.11.
Parameter Transmission
Page 59
2.12.
Storage Management
Page 63
Chapter 3.
Finite Automata and Lexical Analysis
3.1.
The Role of the Lexical Analyzer
Page 74
3.2.
A Simple Approach to the Design of Lexical Analyzers
Page 76
3.3.
Regular Expressions
Page 82
3.4.
Finite Automata
Page 88
3.5.
From Regular Expressions to Finite Automata
Page 95
3.6.
Minimizing the Number of States of a DFA
Page 99
3.7.
A Language for Specifying Lexical Analyzers
Page 103
3.8.
Implementation of a Lexical Analyzer
Page 109
3.9.
The Scanner Generator as Swiss Army Knife
Page 118
Chapter 4.
The Syntactic Specification of Programming Languages
4.1.
Context-free Grammars
Page 126
4.2.
Derivations and Parse Trees
Page 129
4.3.
Capabilities of Context-free Grammars
Page 136
Chapter 5.
Basic Parsing Techniques
5.1.
Parsers
Page 146
5.2.
Shift-reduce Parsing
Page 150
5.3.
Operator-precedence Parsing
Page 158
5.4.
Top-down Parsing
Page 174
5.5.
Predictive Parsers
Page 184
Chapter 6.
Automatic Construction of Efficient Parsers
6.1.
LR Parsers
Page 198
6.2.
The Canonical Collection of LR (0) Items
Page 204
6.3.
Constructing SLR Parsing Tables
Page 211
6.4.
Constructing Canonical LR Parsing Tables
Page 214
6.5.
Constructing LALR Parsing Tables
Page 219
6.6.
Using Ambiguous Grammars
Page 225
6.7.
An Automatic Parser Generator
Page 229
6.8.
Implementation of LR Parsing Tables
Page 233
6.9.
Constructing LALR Sets of Items
Page 236
Chapter 7.
Syntax-Directed Translation
7.1.
Syntax-directed Translation Schemes
Page 246
7.2.
Implementation of Syntax-directed Translators
Page 249
7.3.
Intermediate Code
Page 254
7.4.
Postfix Notation
Page 254
7.5.
Parse Trees and Syntax Trees
Page 258
7.6.
Three-address Code, Quadruples, and Triples
Page 259
7.7.
Translation of Assignment Statements
Page 265
7.8.
Boolean Expressions
Page 271
7.9.
Statements that Alter the Flow of Control
Page 281
7.10.
Postfix Translations
Page 286
7.11.
Translation with a Top-down Parser
Page 290
Chapter 8.
More About Translation
8.1.
Array References in Arithmetic Expressions
Page 296
8.2.
Procedure Calls
Page 303
8.3.
Declarations
Page 307
8.4.
Case Statements
Page 308
8.5.
Record Structures
Page 312
8.6.
PL/I-style Structures
Page 317
Chapter 9.
Symbol Tables
9.1.
The Contents of a Symbol Table
Page 328
9.2.
Data Structures for Symbol Tables
Page 336
9.3.
Representing Scope Information
Page 340
Chapter 10.
Run-time Storage Administration
10.1.
Implementation of a Simple Stack Allocation Scheme
Page 351
10.2.
Implementation of Block-structured Languages
Page 356
10.3.
Storage Allocation in FORTRAN
Page 364
10.4.
Storage Allocation in Block-structured Languages
Page 377
Chapter 11.
Error Detection and Recovery
11.1.
Errors
Page 382
11.2.
Lexical-phase Errors
Page 388
11.3.
Syntactic-phase Errors
Page 391
11.4.
Semantic Errors
Page 402
Chapter 12.
Introduction to Code Optimization
12.1.
The Principal Sources of Optimization
Page 408
12.2.
Loop Optimization
Page 410
12.3.
The DAG Representation of Basic Blocks
Page 418
12.4.
Value Numbers and Algebraic Laws
Page 427
12.5.
Global Data-flow Analysis
Page 429
Chapter 13.
More About Loop Optimization
13.1.
Dominators
Page 442
13.2.
Reducible Flow Graphs
Page 447
13.3.
Depth-first Search
Page 449
13.4.
Loop-invariant Computations
Page 454
13.5.
Induction Variable Elimination
Page 466
13.6.
Some Other Loop Optimizations
Page 471
Chapter 14.
More About Data-flow Analysis
14.1.
Reaching Definitions Again
Page 478
14.2.
Available Expressions
Page 482
14.3.
Copy Propagation
Page 487
14.4.
Backward Flow Problems
Page 489
14.5.
Very Busy Expressions and Code Hoisting
Page 491
14.6.
The Four Kinds of Data-flow Analysis Problems
Page 497
14.7.
Handling Pointers
Page 499
14.8.
Interprocedural Data-flow Analysis
Page 504
14.9.
Putting It All Together
Page 511
Chapter 15.
Code Generation
15.1.
Object Programs
Page 518
15.2.
Problems in Code Generation
Page 521
15.3.
A Machine Model
Page 520
15.4.
A Simple Code Generator
Page 525
15.5.
Register Allocation and Assignment
Page 533
15.6.
Code Generation from DAG's
Page 537
15.7.
Peephole Optimization
Page 548
Appendix A.
A Look at Some Compilers
A.1.
The C Compilers
Page 557
A.2.
The FORTRAN H Compiler
Page 559
A.3.
The BLISS/11 Compiler
Page 561
Appendix B.
A Compiler Project
B.1.
Introduction
Page 563
B.2.
A PASCAL Subset
Page 563
B.3.
Program Structure
Page 566
B.4.
Lexical Conventions
Page 566
B.5.
Suggested Exercises
Page 567
B.6.
Some Extensions
Page 569
Bibliography
Page 570
Suggested Exercises
Page 591
Index
Page 601
Classifications
The Physical Object
ID Numbers
Community Reviews (0)
Feedback?August 22, 2024 | Edited by MARC Bot | import existing book |
July 24, 2024 | Edited by MARC Bot | import existing book |
December 20, 2023 | Edited by ImportBot | import existing book |
December 11, 2023 | Edited by MARC Bot | import existing book |
December 11, 2009 | Created by WorkBot | add works page |