Domain-Specific Languages
The domains of many projects are complex in terms of content and expertise, requiring particular flexibility in problem-solving as they involve aspects such as complex rule sets, processes, or descriptions of domain entities. The project's programming language, typically a general-purpose programming language, is not always the right language to express these aspects, for example when
- these aspects can be configured by users,
- the implementation language is too expressive to statically guarantee properties, security, runtime, or termination,
- the implementation language is not expressive enough to describe these aspects readably and comprehensibly.
Domain-specific languages (DSLs) can help tame this complexity, empower users to independently solve complex tasks with the software, enable low-code approaches where tasks can be solved with less code than would be possible in the project's implementation language, and improve quality attributes such as adaptability, modifiability, analyzability, and security.
The training teaches skills in designing and implementing DSLs that are applicable in many contexts. We proceed systematically, starting with simple DSLs that are embedded as libraries in the project's implementation language, and gradually developing them into completely standalone languages with their own syntax and semantics. The necessary computer science fundamentals are taught alongside.
All aspects of the training are accompanied by practical exercises that enable participants to develop DSLs themselves and integrate them into their project's architecture. We conduct the exercises in Racket, a particularly easy-to-learn and powerful platform for DSL design. We also make excursions into Xtext and MPS.
Prior knowledge of these languages and technologies is not required. A previously attended iSAQB Advanced training on Domain-Driven Design or Functional Software Architecture is not a mandatory prerequisite but facilitates understanding.
iSAQB Advanced Level
This training is part of the Advanced Level of the iSAQB certification for software architects (CPSA-A) and implements the iSAQB module DSL.
If you attend this training as part of the iSAQB Advanced Level, you can have credit points recognized afterwards (10 credit points in the Methodology competence area and 20 credit points in the Technical Competence area).
Content
- Where do DSLs belong in my architecture?
- From domain model to embedded DSL
- Semantics design and compositionality
- Interpreter vs. compiler
- Syntax and parsing
- Fundamentals of type systems
Upcoming Dates
2026-04-13 – 2026-04-15, online
2026-07-13 – 2026-07-15, Hamburg
Anmeldung über oose.
Instructor(s)
Dr. Michael Sperber
Dr. Sperber is the managing director of Active Group GmbH, which develops custom software exclusively using functional programming. He is an expert in functional programming and has been applying it for over 25 years in research and industrial development. Dr. Sperber has also been involved in programming education for over 30 years and has conducted extensive research on the topic. He is co-founder of the blog funktionale-programmierung.de and co-organizer of the developer conference BOB, as well as author of several books and numerous technical articles.
