DDD Europe 2024 - Program

How to DSL for real

Main Conference - Hands-on Lab


Markus Völter

Markus Völter
Thursday 30 from 14:30 until 16:30

Domain-Specific Languages, as I understand them, are programming languages targeted at domain experts. The goal is to empower them to directly "program" a software system regarding the domain-specific subject matter. This is in contrast to regular development, where domain experts are relegated to just supply requirements in one form or another, which are then implemented by developers. Letting them program (or model or configure) the software system directly makes them more productive and the overall process more efficient.

In this session, I briefly introduce what are domain-specific languages are in general, and in the context of subject-matter expert programming, I show a few examples from my project work, elaborate why it a good idea to use DSLs, how this relates to DDD and some general background on the tools available to build them.

In the main part of the session I will develop a DSL with Jetbrains MPS to illustrate how this works in practice. I will discuss structure, syntax, typesystem, interpreter, notations beyond text (tables, etc) and a bit of language modularity and reuse.

Note that although this is categorized as a hands-on lab, the only hands on the keyboard will be mine when I demonstrate MPS. Two hours are not enough for a real hands-on session.

About Markus Völter

Markus works as a language engineer, bridging the gap from industry and business domains to software systems. He analyses domains, designs user-friendly languages and supporting analyses, and implements language tools and IDEs, architects efficient and reliable backends based on interpreters and generators. He also works on formalisms and meta-tools for language engineering.

For 20 years, Markus has consulted, coached and developed in a wide range of industries, including finance, automotive, health, science and IT. He has published numerous papers in peer-reviewed conferences and journals, has written several books on the subject and spoken at many industry conferences world-wide. Markus has a diploma in technical physics from FH Ravensburg-Weingarten and a PhD in computer science from TU Delft. Reach him via http://voelter.de