DSLs: what, why, how

We discuss here:
– definition of a domain-specific language
– difference between internal and external languages
– command-query APIs
– example (Vaadin-based) language
– advantages of using DSLs
– problems with DSLs

List of sources for images in slides
– https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Turnstile_state_machine_colored.svg/2000px-Turnstile_state_machine_colored.svg.png
– https://cdn.visual-paradigm.com/lz/tutorials/sensibledecisiontable_screenshots/02-decision-table-example.png


This part of the course is based on M. Fowler’s book Domain-specific languages. Here are the sections of the book you can refer to:
Section 2.1. Defining Domain-Specific Languages
Section 4.1. Fluent and Command-Query APIs
Section 2.2. Why Use a DSL?
Section 2.3. Problems with DSLs

Why DSLs? (by M. Voelter)

Additional materials