Language Implementation Patterns
- Length: 374 pages
- Edition: 1
- Language: English
- Publisher: Pragmatic Bookshelf
- Publication Date: 2010-01-07
- ISBN-10: 193435645X
- ISBN-13: 9781934356456
- Sales Rank: #234482 (See Top 100 Books)
Learn to build configuration file readers, data readers, model-driven code generators, source-to-source translators, source analyzers, and interpreters. You don’t need a background in computer science–ANTLR creator Terence Parr demystifies language implementation by breaking it down into the most common design patterns. Pattern by pattern, you’ll learn the key skills you need to implement your own computer languages.
Knowing how to create domain-specific languages (DSLs) can give you a huge productivity boost. Instead of writing code in a general-purpose programming language, you can first build a custom language tailored to make you efficient in a particular domain.
The key is understanding the common patterns found across language implementations. Language Design Patterns identifies and condenses the most common design patterns, providing sample implementations of each.
The pattern implementations use Java, but the patterns themselves are completely general. Some of the implementations use the well-known ANTLR parser generator, so readers will find this book an excellent source of ANTLR examples as well. But this book will benefit anyone interested in implementing languages, regardless of their tool of choice. Other language implementation books focus on compilers, which you rarely need in your daily life. Instead, Language Design Patterns shows you patterns you can use for all kinds of language applications.
You’ll learn to create configuration file readers, data readers, model-driven code generators, source-to-source translators, source analyzers, and interpreters. Each chapter groups related design patterns and, in each pattern, you’ll get hands-on experience by building a complete sample implementation. By the time you finish the book, you’ll know how to solve most common language implementation problems.
Table of Contents
Part 1 Getting Started With Parsing
Chapter 1 Language Applications Cracked Open
Chapter 2 Basic Parsing Patterns
Chapter 3 Enhanced Parsing Patterns
Part 2 Analyzing Languages
Chapter 4 Building Intermediate Form Trees
Chapter 5 Walking And Rewriting Trees
Chapter 6 Tracking And Identifying Program Symbols
Chapter 7 Managing Symbol Tables For Data Aggregates
Chapter 8 Enforcing Static Typing Rules
Part 3 Building Interpreters
Chapter 9 Building High-Level Interpreters
Chapter 10 Building Bytecode Interpreters
Part 4 Translating And Generating Languages
Chapter 11 Translating Computer Languages
Chapter 12 Generating Dsls With Templates
Chapter 13 Putting It All Together
Appendix A Bibliography