Domain-Specific Languages (Google eBook)

Front Cover
Pearson Education, Sep 23, 2010 - Computers - 640 pages
9 Reviews

When carefully selected and used, Domain-Specific Languages (DSLs) may simplify complex code, promote effective communication with customers, improve productivity, and unclog development bottlenecks. In Domain-Specific Languages , noted software development expert Martin Fowler first provides the information software professionals need to decide if and when to utilize DSLs. Then, where DSLs prove suitable, Fowler presents effective techniques for building them, and guides software engineers in choosing the right approaches for their applications.


This book’s techniques may be utilized with most modern object-oriented languages; the author provides numerous examples in Java and C#, as well as selected examples in Ruby. Wherever possible, chapters are organized to be self-standing, and most reference topics are presented in a familiar patterns format.


Armed with this wide-ranging book, developers will have the knowledge they need to make important decisions about DSLs—and, where appropriate, gain the significant technical and business benefits they offer.


The topics covered include:

  • How DSLs compare to frameworks and libraries, and when those alternatives are sufficient
  • Using parsers and parser generators, and parsing external DSLs
  • Understanding, comparing, and choosing DSL language constructs
  • Determining whether to use code generation, and comparing code generation strategies
  • Previewing new language workbench tools for creating DSLs

What people are saying - Write a review

User ratings

5 stars
4 stars
3 stars
2 stars
1 star

Review: Domain-Specific Languages

User Review  - Väinö Leppänen - Goodreads

This book is a nice intro into the DSLs in general and as such, it's just the first step. Actually learning how to create DSLs isn't something the book is good for. The book focuses on introducing the ... Read full review

Review: Domain-Specific Languages

User Review  - Slavik - Goodreads

Good book. Everyone who want to start their journey with dsl should read this book. Read full review


Part I Narratives
Chapter 1 An Introductory Example
Chapter 2 Using DomainSpecific Languages
Chapter 3 Implementing DSLs
Chapter 4 Implementing an Internal DSL
Chapter 5 Implementing an External DSL
Chapter 6 Choosing between Internal and External DSLs
Chapter 31 External DSL Miscellany
Part IV Internal DSL Topics
Chapter 32 Expression Builder
Chapter 33 Function Sequence
Chapter 34 Nested Function
Chapter 35 Method Chaining
Chapter 36 Object Scoping
Chapter 37 Closure

Chapter 7 Alternative Computational Models
Chapter 8 Code Generation
Chapter 9 Language Workbenches
Part II Common Topics
Chapter 10 A Zoo of DSLs
Chapter 11 Semantic Model
Chapter 12 Symbol Table
Chapter 13 Context Variable
Chapter 14 Construction Builder
Chapter 15 Macro
Chapter 16 Notification
Part III External DSL Topics
Chapter 17 DelimiterDirected Translation
Chapter 18 SyntaxDirected Translation
Chapter 19 BNF
Chapter 20 Regex Table Lexer by Rebecca Parsons
Chapter 21 Recursive Descent Parser by Rebecca Parsons
Chapter 22 Parser Combinator by Rebecca Parsons
Chapter 23 Parser Generator
Chapter 24 Tree Construction
Chapter 25 Embedded Translation
Chapter 26 Embedded Interpretation
Chapter 27 Foreign Code
Chapter 28 Alternative Tokenization
Chapter 29 Nested Operator Expression
Chapter 30 Newline Separators
Chapter 38 Nested Closure
Chapter 39 Literal List
Chapter 40 Literal Map
Chapter 41 Dynamic Reception
Chapter 42 Annotation
Chapter 43 Parse Tree Manipulation
Chapter 44 Class Symbol Table
Chapter 45 Textual Polishing
Chapter 46 Literal Extension
Part V Alternative Computational Models
Chapter 47 Adaptive Model
Chapter 48 Decision Table
Chapter 49 Dependency Network
Chapter 50 Production Rule System
Chapter 51 State Machine
Part VI Code Generation
Chapter 52 Transformer Generation
Chapter 53 Templated Generation
Chapter 54 Embedment Helper
Chapter 55 ModelAware Generation
Chapter 56 Model Ignorant Generation
Chapter 57 Generation Gap

Common terms and phrases

About the author (2010)

Martin Fowler is Chief Scientist at ThoughtWorks. He describes himself as “an author, speaker, consultant, and general loudmouth on software development. I concentrate on designing enterprise software—looking at what makes a good design and what practices are needed to come up with good design.” Fowler’s books include Patterns of Enterprise Application Architecture; UML Distilled, Third Edition; and (with Kent Beck, John Brant, and William Opdyke) Refactoring: Improving the Design of Existing Code. All are published by Addison-Wesley.

Bibliographic information