49 lines
2.2 KiB
Markdown
49 lines
2.2 KiB
Markdown
---
|
|
kind: event
|
|
startdate: 2019-04-11T19:30:00Z
|
|
duration: 2h
|
|
title: "Sprachbau, DSLs und Verifikationstools"
|
|
speakers:
|
|
-
|
|
name: "Markus Völter"
|
|
location:
|
|
location: bib
|
|
material:
|
|
-
|
|
title: Github-Repo
|
|
link: https://github.com/markusvoelter/mpsintrocourse
|
|
public: true
|
|
---
|
|
Sprachen sind seit jeher das Rückgrat des Software Engineering:
|
|
Programmiersprachen, Modellierungssprachen, Spezifikationssprachen.
|
|
|
|
Sprachen sind nützlich, da sie es den Entwicklern erlauben, bestimmte
|
|
Problemstellungen oder Lösungsalgorithmen möglichst gut auszudrücken.
|
|
"Gut" kann bedeuten: möglichst kompakt, möglichst leicht lesbar,
|
|
zugänglich für Nicht-Programmierer in interdisziplinären Kontexten, oder
|
|
geeignet für bestimmte (semi-)formale Analysealgorithmen. Leicht
|
|
vereinfachend kann man sagen: je breiter das Anwendungsspektrum einer
|
|
Sprache, desto schlechter erfüllt sie viele dieser Kriterien.
|
|
|
|
Ein vielversprechender Ansatz besteht daher darin, eine Sprache für
|
|
einen ganz konkreten Einsatzzweck zu bauen, sogenannte
|
|
domänenspezifische Sprachen: für Steuergesetze, für medizinische
|
|
Algorithmen, für die Konfiguration komplexer technischer Geräte oder die
|
|
Performanceanalyse von eingebetteten Systemen.
|
|
|
|
Der Haken dabei? Man muss eine neue Sprache bauen. Die Lösung?
|
|
Domänenspezifische Sprachen zur Sprachdefinition. Über die letzten Jahre
|
|
haben sich die dafür notwendigen Werkzeuge so weiterentwickelt, dass der
|
|
Aufwand zum Bau einer Sprache problemlos im Rahmen eines normalen
|
|
Softwareentwicklungsprojektes unterzubringen ist. Diese Werkzeuge,
|
|
Language Workbenches, unterstützen die Definition aller relevanten
|
|
Sprachaspekte, von Struktur über Typsystem bis zu Interpretern,
|
|
Compilern und komfortablen IDEs. Sie erlauben modulare Spracherweiterung
|
|
und -komposition sowie die Mischung von Syntaxformen wie Text, Tabellen,
|
|
und Diagrammen.
|
|
|
|
Dieser Vortrag zeigt den Sprachbau mit einer solchen Language
|
|
Workbench, dem Open-Source Werkzeug MPS von Jetbrains. Neben der
|
|
Live-Demo einer Spracherweiterung werden ein paar Beispiele für DSLs
|
|
aus dem industriellen Umfeld demonstriert. Ich gehe dabei auch auf die Integration
|
|
mit Verifikationswerkzeugen wie SMT Solvern und Model Checkern ein.
|