Compiler Technology Tools, Translators and Language Implementation
Compiler technology is fundamental to computer science since it provides the means to implement many other tools. It is interesting that, in fact, many tools have a compiler framework - they accept input in a particular format, perform some processing and present output in another format. Such tools...
Main Author: | |
---|---|
Format: | eBook |
Language: | English |
Published: |
New York, NY
Springer US
1997, 1997
|
Edition: | 1st ed. 1997 |
Series: | The Springer International Series in Engineering and Computer Science
|
Subjects: | |
Online Access: | |
Collection: | Springer Book Archives -2004 - Collection details see MPG.ReNa |
Table of Contents:
- 1. Introduction to Language Implementation
- 1.1 Translator Strategies
- 1.2 Translator Components
- 1.3 Implementation of Translator Phases
- 1.4 Summary
- 1.5 Questions
- 2. Language Definition
- 2.1 BNF Notations
- 2.2 Construction of Recursive Descent Parsers
- 2.3 Grammar Restrictions
- 2.4 Summary
- 2.5 Questions
- 3. Lexical Scanners
- 3.1 Scanner Framework
- 3.2 Formalisms
- 3.3 Constructing Scanners from Specifications
- 3.4 Constructing a Finite State Machine from a Regular Grammar
- 3.5 Constructing a Finite State Machine from a Regular Expression
- 3.6 Deterministic State Transition
- 3.7 Optimizing a Finite State Machine
- 3.8 Implementation of a Finite State Machine
- 3.9 Considerations for Scanner Implementation
- 3.10 Summary
- 3.11 Questions
- 4. Syntactic Analysis
- 4.1 Recursive Descent Parsing and Top-down Analysis
- 4.2 Bottom-up Analysis
- 4.3 Tree Construction
- 4.4 Generating Parse Configurations
- 4.5 Generating LR(0) Parse Tables
- 4.6 Parsing Conflicts
- 4.7 Extending LR(0) Tables for LR(1) Parsing
- 4.8 Parse Table Optimization: SLR(1) and LALR(1) Methods
- 4.9 Parsing With non-LL(1) or non-LR(1) Grammars
- 4.10 Summary
- 4.11 Questions
- 5. Incorporating Semantic Analysis
- 5.1 Syntax-Directed Analysis
- 5.2 Semantic Analysis in a Recursive Descent Parser
- 5.3 Specifying Action Routines in Generated Parsers
- 5.4 Attribute Propagation within Parser Drivers
- 5.5 yacc Example
- 5.6 Inherited and Synthesized Attribute Propagation
- 5.7 Summary
- 5.8 Questions
- 6. Semantic Processing
- 6.1 General Structure of Programming Languages
- 6.2 Symbol Tables
- 6.3 Type Definitions
- 6.4 Processing Summary
- 6.5 Formal Specifications via Attribute Grammars
- 6.6 Example Specification of a Block Structured Language
- 6.7 Attribute Evaluation Strategies
- 6.8 Summary
- 6.9 Questions
- 7. The Program Run-Time Environment
- 7.1 Program Representations
- 7.2 Storage Allocations
- 7.3 Dynamic Variables
- 7.4 Summary
- 7.5 Questions
- 8. Intermediate Code and Interpreters
- 8.1 Intermediate Representation
- 8.2 Syntax-Directed Translation
- 8.3 Representing a Nested Block-Structured Language
- 8.4 Interpreter Implementation
- 8.5 Efficiency Improvements
- 8.6 Summary
- 8.7 Questions
- 9. Code Generation
- 9.1 Macro Expansion
- 9.2 Register Allocation
- 9.3 Instruction Sequencing
- 9.4 Instruction and Addressing Mode Selection
- 9.5 Summary
- 9.6 Questions