Domain-specific languages (DSLs) can help tame this complexity. They enable users to independently solve even complex tasks with the software, support 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.
This training teaches skills for designing and implementing DSLs that can be applied in many contexts. We take a systematic approach: starting with simple DSLs embedded as a library into the project’s implementation language, which we then gradually evolve into fully standalone languages with their own syntax and semantics. The necessary computer science foundations are taught along the way.
All aspects of the training are accompanied by practical exercises that enable participants to develop their own DSLs and integrate them into their project’s architecture. The exercises are conducted in Racket, a particularly easy-to-learn and powerful platform for designing DSLs. In addition, we explore Xtext and MPS.
Prior knowledge of these languages and technologies is not required. Previous participation in an iSAQB Advanced training on Domain-Driven Design or Functional Software Architecture is not mandatory but can make understanding easier.