Compiler Technology, Softcover reprint of the original 1st ed. 1997
Tools, Translators and Language Implementation

The Springer International Series in Engineering and Computer Science Series, Vol. 422

Author:

Language: English

158.24 €

In Print (Delivery period: 15 days).

Add to cartAdd to cart
Publication date:
210 p. · 15.5x23.5 cm · Paperback
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 support the abstraction process and are crucial to productive systems development.
The focus of Compiler Technology: Tools, Translators and LanguageImplementation is to enable quick development of analysis tools. Both lexical scanner and parser generator tools are provided as supplements to this book, since a hands-on approach to experimentation with a toy implementation aids in understanding abstract topics such as parse-trees and parse conflicts. Furthermore, it is through hands-on exercises that one discovers the particular intricacies of language implementation.
Compiler Technology: Tools, Translators and Language Implementation is suitable as a textbook for an undergraduate or graduate level course on compiler technology, and as a reference for researchers and practitioners interested in compilers and language implementation.
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.
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 support the abstraction process and are crucial to productive systems development. The focus of Compiler Technology: Tools, Translators and Language Implementation is to enable quick development of analysis tools. Both lexical scanner and parser generator tools are provided as supplements to this book, since a hands-on approach to experimentation with a toy implementation aids in understanding abstract topics such as parse-trees and parse conflicts. Furthermore, it is through hands-on exercis