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 dient als Vorbereitung für den iSAQB Certified Professional for Software Architecture, Advanced Level (CPSA-A) und bezieht sich auf das neue CPSA-A-Modul “DSL”.

Informationen zur CPSA-Zertifizierung finden Sie hier.

Dozent

Dr. Michael Sperber

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

1.-3.7.2024, Hamburg

(zusammen mit oose)

Details und Anmeldung hier.

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