Venue: Voxxed Days Ticino 2019
Date: 5 October 2019

Venue: Voxxed Days Ticino 2019
Date: 5 October 2019
Domain-Specific Languages (DSLs) are machine languages tailored to a particular application domain, allowing to produce more concise and understandable programs, with a tighter stakeholder integration. In particular, internal DSLs are a particular class of DSLs written inside a given general purpose programming language. Not all programming languages are equally effective for this. Through quotes of Martin Fowler, some history, and code examples, we will learn why you should care about internal DSLs and more importantly a great language to design them: Scala.
We will discover how a few simple but powerful Scala features, like symbolic method names, infix method calls, and call by name, enable the elegant design of internal DSLs. As a reference domain, we will focus on testing, illustrating the usage and the design of frameworks like ScalaTest and ScalaCheck, with a lot of code.
Thus, the outcomes of this talk are twofold: First, you will learn how a DSL can help you write powerful and elegant tests — even for your Java programs. Second, you will learn how you can leverage that elegance to design your own DSL on a specific application domain (but only if you’re brave!).
Domain-Specific Languages (DSLs) are programming languages that are tailored to a particular application domain. This essential focus of DSLs allows one to write more concise and understandable programs, with tight stakeholder integration, and, when done properly, to improve code quality. The course will feature the current state of the art in both the design and implementation of DSLs. The course will emphasize the different design dimensions of DSLs, the involved language paradigms and features, and the drawbacks with respect to simple API modeling.