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...

Full description

Bibliographic Details
Main Author: Beng Kee Kiong, Derek
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