From 80bf5823557ca5c3a5d0c0ee5658cc81fdad662b Mon Sep 17 00:00:00 2001 From: Stefan Schlott Date: Sun, 6 Jan 2019 22:46:25 +0100 Subject: [PATCH] Abstract April --- content/events/201904-sprachbau/index.md | 33 +++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/content/events/201904-sprachbau/index.md b/content/events/201904-sprachbau/index.md index e2a05b25..99edde16 100644 --- a/content/events/201904-sprachbau/index.md +++ b/content/events/201904-sprachbau/index.md @@ -10,5 +10,36 @@ location: location: bib public: true --- -(Details folgen) +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, sogenannten +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 +Softwareenticklungsprojektes 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. + +In diesem Vortrag zeige den Sprachbau mit einer solchen Language +Workbench, dem Open-Source Werkzeug MPS von Jetbrains. Neben der +Live-Demo einer Spracherweiterung zeige ich ein paar Beispiele für DSLs +aus dem industriellen Umfeld. Ich gehe dabei auch auf die Integration +mit Verifikationwerkzeugen wie SMT Solvern und Model Checkern ein.