Home > Store

Domain-Specific Languages, Rough Cuts

Rough Cuts

  • Available to Safari Subscribers
  • About Rough Cuts
  • Rough Cuts are manuscripts that are developed but not yet published, available through Safari. Rough Cuts provide you access to the very latest information on a given topic and offer you the opportunity to interact with the author to influence the final publication.

Not for Sale

Also available in other formats.

Description

  • Copyright 2011
  • Pages: 640
  • Edition: 1st
  • Rough Cuts
  • ISBN-10: 0-13-210755-4
  • ISBN-13: 978-0-13-210755-6

This is the Rough Cut version of the printed book.

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

Sample Content

Table of Contents

Preface                            xix

Part I: Narratives                                              1

Chapter 1: An Introductory Example                             3

Gothic Security         3

The State Machine Model        5

Programming Miss Grant’s Controller         9

Languages and Semantic Model          16

Using Code Generation         19

Using Language Workbenches         22

Visualization        24

Chapter 2: Using Domain-Specific Languages                            27

Defining Domain-Specific Languages         27

Why Use a DSL?         33

Problems with DSLs         36

Wider Language Processing         39

DSL Lifecycle        40

What Makes a Good DSL Design?       42

Chapter 3: Implementing DSLs                                   43

Architecture of DSL Processing           43

The Workings of a Parser          47

Grammars, Syntax, and Semantics        49

Parsing Data        50

Macros       52

Chapter 4: Implementing an Internal DSL                         67

Fluent and Command-Query APIs          68

The Need for a Parsing Layer         71

Using Functions         72

Literal Collections       77

Using Grammars to Choose Internal Elements       79

Updates

Submit Errata

More Information