Entwicklungssysteme

Domänenspezifische Sprachen

7. September 2011, 14:12 Uhr | Von Rolf Hänisch
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Beispiel eines Sicherheitsschalters

Mit dieser DSL kann nun ein Automat, etwa ein »D&E Schalter« (siehe Bild 3) beschrieben werden. Dieser soll erst schalten, wenn »TasteA« und dann »TasteB« gedrückt wurden. Dies ist also die vereinfachte Form eines Zwei-Hand-Schalters. Bei Bedienfehlern soll der Schalter blockieren und erst durch ein »Reset« gelöst werden können.

Der Automat schaltet bei jedem Schalttakt (beispielsweise alle 20 ms). Ist die Bedingung an die Transitionen erfüllt (»true«), kann sie ausgeführt werden und der Zustand ändert sich. Nur im Zustand »On« soll der Ausgang »Out« (hier nicht dargestellt) geschaltet sein. Der Ausgang »Diag« soll den Zustandswert des Automaten zu Diagnosezwecken ausgeben können.

passend zum Thema

Schalter in Eclipse
Bild 4. Der Schalter in Eclipse beschrieben
© Fraunhofer FIRST

Aus der Beschreibung in Bild 4 (im von »Xtext« erzeugten Eclipse-Plug-in) können nun Programmcodes in Java, C++ usw., aber auch Testdaten für die Implementierung und Beschreibung von Prüfverfahren wie Model-Checkern, Theorem-Beweisern und anderen erzeugt werden. Mit diesen Prüfverfahren lassen sich dann Eigenschaften des beschriebenen Modells nachweisen. Der Vorteil liegt dabei in der einfachen Handhabbarkeit bei der Verknüpfung verschiedener Werkzeuge. Fehler durch manuelle Übertragungen sind dadurch ausgeschlossen.

Natürlich lassen sich damit auch Konsistenzprüfungen erstellen. In unserer Automatensprache könnte man etwa verlangen, dass Variablen deklariert sein müssen. Oder das geprüft wird, dass Zustände nicht doppelt beschrieben werden und alle verwendeten Zustände in den Transitionen auch definiert sind. Hierzu eignen sich besonders gut deklarative Beschreibungssprachen, wie sie zur Logik-Programmierung (zum Beispiel Prolog) verwendet werden.

Forschungsprojekte

War das Schreiben eines Compilers bisher eine sehr zeitraubende und anspruchsvolle Tätigkeit, so lassen sich heute durch moderne Generatoren sehr schnell ganze Entwicklungsumgebungen erzeugen. Um diese Möglichkeiten einem größeren Anwenderkreis zur Verfügung zu stellen, arbeiten Forschungseinrichtungen und Industriepartner im BIZWARE-Projekt [5] zusammen. Dort werden Verbesserungen und Erweiterungen an Werkzeugen für Compiler und Entwicklungsumgebungen von DSLs diskutiert, erarbeitet und erprobt. Ziel ist es, dass zukünftig auch Nicht-Informatiker diese Tools in ihre Entwicklungsumgebung integrieren können, um ihre Beschreibungsmittel automatisch wiederverwendbar, weiterverarbeitbar und kombinierbar zu gestalten.

 

Literatur & Autor:

[1] Anneke Kleppe, Software Language Engineering: Creating Domain-Specific Languages Using Metamodels, Addison Wesley, 2008
[2] Martin Fowler, Domain-Specific Languages, Addison Wesley, 2011
[3] Xtext: www.eclipse.org/Xtext/
[4] PLCopen Safety: www.plcopen.org
[5] www.bizware.org/

Der Autor: Rolf Hänisch ist Forschungsgruppenleiter Review und Assessment beim Fraunhofer-Institut für Rechnerarchitektur und Softwaretechnik FIRST


  1. Domänenspezifische Sprachen
  2. Beispiel eines Sicherheitsschalters

Jetzt kostenfreie Newsletter bestellen!