Domänspezifische Sprachen („domain-specific languages“, DSLs) können helfen, diese Komplexität zu bändigen, befähigen Benutzer:innen selbstständig mit der Software auch komplexe Aufgaben zu lösen, ermöglichen Low-Code-Ansätze, bei denen Aufgaben mit weniger Code gelöst werden können, als es in der Implementierungssprache des Projekts möglich wäre, und verbessern Qualitätseigenschaften wie Adaptierbarkeit, Modifizierbarkeit, Analysierbarkeit und Sicherheit.
Die Schulung vermittelt Fähigkeiten bei Design und Implementierung von DSLs, die in vielen Kontexten anwendbar sind. Dabei gehen wir systematisch vor. Wir fangen mit einfachen DSLs an, die als Library in die Implementierungssprache des Projekts eingebettet werden, und die wir schrittweise weiterentwickeln zu komplett eigenständigen Sprachen mit eigener Syntax und Semantik. Die nötigen Grundlagen aus der Informatik werden begleitend vermittelt.
Alle Aspekte der Schulung werden von praktischen Übungen begleitet, welche die Teilnehmer:innen befähigen, selbst DSLs zu entwickeln und in die Architektur ihres Projekts zu integrieren. Die Übungen führen wir in Racket durch, eine besonders leicht zu lernende und leistungsfähige Plattform für das Design von DSLs. Außerdem machen wir Exkurse in Xtext und MPS.
Vorkenntnisse in diesen Sprachen und Technologien sind nicht notwendig. Eine vorher besuchte iSAQB-Advanced-Schulung zu Domain-Driven Design oder Funktionaler Softwarearchitektur ist keine zwingende Voraussetzung, erleichtert aber das Verständnis.