Logo - Fakultät Illustration
 

Kurs 01888 - WiSe 2016/17

Illustration

Domänenspezifische Sprachen

SWS: 4 , WS 2016/2017
ECTS-Punkte: 10
Dauer: 1 Semester
Angebot: jedes Semester
Übung: 2 SWS

Prüfung: Klausur

Voraussetzungen

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

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

Studienmaterial: Kurstext [pdf]

Bearbeitungsbeginn:

Letzte grundlegende Überarbeitung:

Nächster geplanter Einsatz: SS 2017

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 Lösungen
  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
Sarah Lang | 10.04.2018
FernUni-Logo FernUniversität in Hagen, Fakultät für Mathematik und Informatik, Lehrgebiet Programmiersysteme, 58084 Hagen, Tel.: +49 2331 987-2998