30.06.2014 Aufrufe

MontiCore: Agile Entwicklung von domänenspezifischen Sprachen ...

MontiCore: Agile Entwicklung von domänenspezifischen Sprachen ...

MontiCore: Agile Entwicklung von domänenspezifischen Sprachen ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

1.2 Domänenspezifische <strong>Sprachen</strong> 9<br />

Autofilter [RVWL03] ist eine Sprache zur Konfiguration <strong>von</strong> Kalmanfiltern für die Satellitensteuerung.<br />

Neben der Erzeugung <strong>von</strong> Produktivcode kann auch ein Beweis<br />

generiert werden, dass die gewählte Lösung optimal ist.<br />

Ereignisgesteuerte Prozessketten [Sch02] dienen der Darstellung <strong>von</strong> Geschäftprozessen.<br />

Diese können die Grundlage für die Implementierung <strong>von</strong> Informationssystemen<br />

bilden oder zur Optimierung eingesetzt werden.<br />

Graphviz [GV] ist eine DSL zur Beschreibung und Visualisierung <strong>von</strong> Graphen.<br />

HTML [HTML] ist eine Sprache zur Strukturierung <strong>von</strong> Text und Grafik, die zusätzlich<br />

eine Verlinkung erlaubt und vor allem im Internet verwendet wird.<br />

Matlab Simulink [Sim] ist eine Sprache zur Beschreibung regelungstechnischer Algorithmen.<br />

Neben der Simulation erlauben verschiedene Codegeneratoren die Erzeugung<br />

<strong>von</strong> Produktionscode.<br />

Feature-Bäume [CE00] erlauben die Modellierung der Variabilität innerhalb einer Softwareproduktlinie.<br />

SQL [SQL96] ist eine Datenbanksprache, die sowohl die Definition <strong>von</strong> Datenbanken erlaubt<br />

als auch die Abfrage und Manipulation <strong>von</strong> Daten ermöglicht.<br />

Verilog [Ver01] ist eine Hardwarebeschreibungssprache zur Modellierung elektronischer<br />

Systeme, die für die Implementierung, Verifikation und zum Testen eingesetzt werden<br />

kann.<br />

Die Definition einer DSL umfasst wie die Definition einer GPL die folgenden vier Elemente<br />

[HR04]:<br />

• Die konkrete Syntax einer Sprache definiert die Menge der zulässigen Sprachinstanzen,<br />

die die Entwickler verwenden können.<br />

• Die abstrakte Syntax einer Sprache beschreibt die strukturelle Essenz einer Sprache<br />

[DKLM84, Wil97a]. Sie bildet damit die zentrale Datenstruktur, auf der weitere<br />

Verarbeitungsschritte wie Codegenerierungen, Analysen und Transformationen aufbauen,<br />

und wird im Zusammenhang mit DSLs auch Domänenmodell genannt.<br />

• Die Kontextbedingungen sind prüfbare Bedingungen, die die Menge der zulässigen<br />

Sprachinstanzen begrenzen. Sie ergänzen die abstrakte und konkrete Syntax um<br />

Einschränkungen, die sich in diesen Formalismen nicht oder nur schwer formulieren<br />

lassen. Die Kontextbedingungen sollen ausschließen, dass Sprachinstanzen als<br />

wohldefiniert verstanden werden, für die die Semantik keine Bedeutung definiert.<br />

• Die Semantik einer Sprache bezeichnet deren Bedeutung. Dabei können verschiedene<br />

Techniken wie denotationale Semantik [SS71] und operationale Semantik [Plo81]<br />

genutzt werden, die jeweils auf der abstrakten Syntax aufbauen, ohne direkt Bezug<br />

auf die konkrete Syntax zu nehmen.<br />

DSLs können durch verschiedene Techniken definiert werden, wobei zwischen grammatikbasierten<br />

und modellbasierten Ansätzen unterschieden wird. Grammatikbasierte Ansätze<br />

verwenden als Sprachdefinition meistens verschiedene Arten <strong>von</strong> Grammatiken für konkrete<br />

und abstrakte Syntax. Daraus ergibt sich, dass die Instanzen eine Baumstruktur

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!