Domänenspezifische Sprachen
Die Domänen vieler Projekte sind inhaltlich und fachlich kompliziert und erfordern besondere Flexibilität bei der Problemlösung, da sie Aspekte wie komplexe Regelwerke, Abläufe oder Beschreibungen von Domänenentitäten enthalten. Nicht immer ist die Programmiersprache des Projekts, üblicherweise eine Mehrzweck-Programmiersprache, auch die richtige Sprache, um diese Aspekte auszudrücken, zum Beispiel wenn
- diese Aspekte von den Benutzer:innen konfiguriert werden können,
- die Implementierungssprache zu ausdrucksstark ist, um Eigenschaften, Sicherheit, Laufzeit oder Termination statisch zu garantieren,
- die Implementierungssprache zu ausdrucksschwach ist, um diese Aspekte lesbar und nachvollziehbar zu beschreiben.
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.
iSAQB Advanced Level
Die Schulung ist Teil des Advanced Level der iSAQB-Zertifizierung für Software-Architekten (CPSA-A) und setzt das iSAQB-Modul DSL um.
Wenn Sie dieses Training als Teil des Advanced Level des iSAQB besuchen, können Sie sich danach Credit Points anrechnen lassen (10 Credit Points im Kompetenzbereich Methodik und 20 Credit Points im Kompetenzbereich Technische Kompetenz).
Dozent
Dr. Michael Sperber
Dr. Sperber ist Geschäftsführer der Active Group GmbH, die Individualsoftware ausschließlich mit funktionaler Programmierung entwickelt. Er ist Experte für funktionale Programmierung und wendet sie seit über 25 Jahren in Forschung und industrieller Entwicklung an. Dr. Sperber befasst sich außerdem seit über 30 Jahren mit der Programmierausbildung und hat dazu umfangreich geforscht. Er ist Mitbegründer des Blogs funktionale-programmierung.de und Mitorganisator der Entwicklerkonferenz BOB, sowie Autor mehrerer Bücher und zahlreicher Fachartikel.
Termine
Bei Interesse an weiteren Terminen kontaktieren Sie uns gern via .
Inhalt
- Wo in meine Architektur gehören die DSLs?
- Vom Domänenmodell zur eingebetteten DSL
- Semantik-Design und Kompositionalität
- Interpreter vs. Compiler
- Syntax und Parsing
- Grundlagen von Typsystemen