Kurs 01888 - Sommer 2017

Domänenspezifische Sprachen

Voraussetzungen

Fundierte Programmierkenntnisse, beispielsweise erworben durch die Bearbeitung der Kurse 01618 oder 01814, sind unabdingbar.

Außerdem sind gute Engischkenntnisse unverzichtbar, da der Basistext in englischer Sprache verfasst ist.

Studienmaterial: Kurstext (VU)

Nächster geplanter Einsatz: WS 2017/18

Kurzbeschreibung

Domänenspezifische Sprachen sind formale Sprachen, die speziell für ein bestimmtes Anwendungsgebiet, die „Domäne“, entworfen wurden. Sie übernehmen häufig in der Domäne gebräuchliche Notationen und grenzen sich so von Allzwecksprachen wie beispielsweise Java oder UML ab.

Damit soll es Domänenexpertinnen leichter gemacht werden, sich in einer für ihre Zwecke nützlichen Sprache auszutauschen. Damit domänenspezifische Sprachen wirklich nützlich sind, bedürfen sie umfassender Werkzeugunterstützung, wie man sie von allgemeinen Programmier- und Modellierungssprachen her gewohnt ist. Da der Nutzerkreis domänenspezifischer Sprachen im allgemeinen aber kleiner ist, ist es für deren Erfolg wichtig, dass sich diese Werkzeuge mit wenig Aufwand herstellen lassen. Sog. Language workbenches, mit denen integrierte Entwicklungsumgebungen für formale Sprachen relativ leicht entwickelt werden können, gehören daher zur Entwicklung domänenspezifischer Sprachen fest dazu.

Dieser leittextgestützte Kurs befasst sich mit dem relativ jungen Thema des Entwurfs und der Werkzeugunterstützung domänenspezifischer Sprachen. Er basiert auf dem Buch DSL Engineering von Markus Voelter. Das Buch ist in verschiedenen Formen über http://dslbook.squarespace.com/ erhältlich und kann vor Belegung des Kurses zur Ansicht heruntergeladen werden (zu empfehlen!).

Kurseinheiten

Nr. Titel Aufgaben (VU PDF) Lösungen (VU PDF)
  Kurstext    
1 Addition von succ-Termen in Prolog; DSL; Syntax Übung 1 Lösung 1
2 Xtext; MPS; Transformation vs. Interpretation; Reuse, Embedding, Referencing und Extension; Paradigmen Übung 2 Lösung 2
3 Übersetzung; Ableitungen; Rekursion; Left-factoring und kontextfreie Grammatik sowie EBNF Übung 3 Lösung 3
4 Scoping und Constraints in Xtext und MPS; Eindeutige Variablennamen; Semantikanalyse; Arten der Typberechnung Übung 4 Lösung 4
5

Interpreter mit Xtext, MPS und Prolog; Transformation und Generation in MPS und Xtext; Übersetzer mit Prolog

Übung 5 Lösung 5
6 IDE-Services in Xtext und MPS; Syntaxbaum und korrigierender Prolog-Parser Übung 6 Lösung 6
7 Testen in Xtext und MPS; Parser, Debugger und Interpreter in Prolog; Spracherweiterungen und Mehrdeutigkeiten in MPS Übung 7 Lösung 7

Weitere Informationen:

10.05.2024