
Language Implementation Patterns
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Content
- Cover
- Table of Contents
- Acknowledgments
- Preface
- What to Expect from This Book
- How This Book Is Organized
- What You'll Find in the Patterns
- Who Should Read This Book
- How to Read This Book
- Languages and Tools Used in This Book
- Part I-Getting Started with Parsing
- 1. Language Applications Cracked Open
- The Big Picture
- A Tour of the Patterns
- Dissecting a Few Applications
- Choosing Patterns and Assembling Applications
- 2. Basic Parsing Patterns
- Identifying Phrase Structure
- Building Recursive-Descent Parsers
- Parser Construction Using a Grammar DSL
- Tokenizing Sentences
- Pattern 1. Mapping Grammars to Recursive-Descent Recognizers
- Pattern 2. LL(1) Recursive-Descent Lexer
- Pattern 3. LL(1) Recursive-Descent Parser
- Pattern 4. LL(k) Recursive-Descent Parser
- 3. Enhanced Parsing Patterns
- Parsing with Arbitrary Lookahead
- Parsing like a Pack Rat
- Directing the Parse with Semantic Information
- Pattern 5. Backtracking Parser
- Pattern 6. Memoizing Parser
- Pattern 7. Predicated Parser
- Part II-Analyzing Languages
- 4. Building Intermediate Form Trees
- Why We Build Trees
- Building Abstract Syntax Trees
- Quick Introduction to ANTLR
- Constructing ASTs with ANTLR Grammars
- Pattern 8. Parse Tree
- Pattern 9. Homogeneous AST
- Pattern 10. Normalized Heterogeneous AST
- Pattern 11. Irregular Heterogeneous AST
- 5. Walking and Rewriting Trees
- Walking Trees and Visitation Order
- Encapsulating Node Visitation Code
- Automatically Generating Visitors from Grammars
- Decoupling Tree Traversal from Pattern Matching
- Pattern 12. Embedded Heterogeneous Tree Walker
- Pattern 13. External Tree Visitor
- Pattern 14. Tree Grammar
- Pattern 15. Tree Pattern Matcher
- 6. Tracking and Identifying Program Symbols
- Collecting Information About Program Entities
- Grouping Symbols into Scopes
- Resolving Symbols
- Pattern 16. Symbol Table for Monolithic Scope
- Pattern 17. Symbol Table for Nested Scopes
- 7. Managing Symbol Tables for Data Aggregates
- Building Scope Trees for Structs
- Building Scope Trees for Classes
- Pattern 18. Symbol Table for Data Aggregates
- Pattern 19. Symbol Table for Classes
- 8. Enforcing Static Typing Rules
- Pattern 20. Computing Static Expression Types
- Pattern 21. Automatic Type Promotion
- Pattern 22. Enforcing Static Type Safety
- Pattern 23. Enforcing Polymorphic Type Safety
- Part III-Building Interpreters
- 9. Building High-Level Interpreters
- Designing High-Level Interpreter Memory Systems
- Tracking Symbols in High-Level Interpreters
- Processing Instructions
- Pattern 24. Syntax-Directed Interpreter
- Pattern 25. Tree-Based Interpreter
- 10. Building Bytecode Interpreters
- Programming Bytecode Interpreters
- Defining an Assembly Language Syntax
- Bytecode Machine Architecture
- Where to Go from Here
- Pattern 26. Bytecode Assembler
- Pattern 27. Stack-Based Bytecode Interpreter
- Pattern 28. Register-Based Bytecode Interpreter
- Part IV-Translating and Generating Languages
- 11. Translating Computer Languages
- Syntax-Directed Translation
- Rule-Based Translation
- Model-Driven Translation
- Constructing a Nested Output Model
- Pattern 29. Syntax-Directed Translator
- Pattern 30. Rule-Based Translator
- Pattern 31. Target-Specific Generator Classes
- 12. Generating DSLs with Templates
- Getting Started with StringTemplate
- Characterizing StringTemplate
- Generating Templates from a Simple Input Model
- Reusing Templates with a Different Input Model
- Using a Tree Grammar to Create Templates
- Applying Templates to Lists of Data
- Building Retargetable Translators
- 13. Putting It All Together
- Finding Patterns in Protein Structures
- Using a Script to Build 3D Scenes
- Processing XML
- Reading Generic Configuration Files
- Tweaking Source Code
- Adding a New Type to Java
- Pretty Printing Source Code
- Compiling to Machine Code
- Bibliography
- Index
System requirements
File format: PDF
Copy-Protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our eBook Help page.