List of Tables

 

Chapter 1. Learning to speak the language of the domain

Table 1.1. Commonly used DSLs

Table 1.2. Qualities of a well-designed abstraction

Chapter 2. The DSL in the wild

Table 2.1. Preliminary vocabulary for a DSL that processes orders

Table 2.2. Mapping issues reported against Java’s limitations

Table 2.3. Comparison of compile-time and runtime metaprogramming

Chapter 3. DSL-driven application development

Table 3.1. Integrating DSLs into your core application

Table 3.2. Integration points published by internal DSLs

Table 3.3. Integration points published by external DSLs

Table 3.4. What you need to know about errors and exceptions in DSLs

Chapter 4. Internal DSL implementation patterns

Table 4.1. Possible improvement areas for decorators in the Java DSL

Table 4.2. Builders and metaprogramming

Table 4.3. Iterative improvement of the DSL

Table 4.4. Implementing a generic groupBy

Chapter 5. Internal DSL design in Ruby, Groovy, and Clojure

Table 5.1. Ruby, Groovy, and Clojure features that make them great choices for your internal DSLs

Table 5.2. Dynamic languages and the Ruby DSL

Table 5.3. Think differently when you’re implementing a DSL in Clojure

Table 5.4. Dissecting a Clojure API

Table 5.5. Evolving our DSL

Chapter 6. Internal DSL design in Scala

Table 6.1. Idiomatic Scala in DSL design

Table 6.2. Features that make Scala syntax concise, with reference to listing 6.1

Table 6.3. Scala features checklist for trade-creation DSL