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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

5.13 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121<br />

6 <strong>MontiCore</strong> 123<br />

6.1 Projektstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123<br />

6.2 Funktionsumfang des <strong>MontiCore</strong>-Generators . . . . . . . . . . . . . . . . . . 125<br />

6.2.1 AST-Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128<br />

6.2.2 Antlr-Parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129<br />

6.2.3 Parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129<br />

6.2.4 Root-Klassen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130<br />

6.2.5 Root-Factory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130<br />

6.2.6 Parsing-Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131<br />

6.2.7 Manifest.mf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131<br />

6.3 Software-Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131<br />

6.3.1 Symboltabelle der Grammatik . . . . . . . . . . . . . . . . . . . . . . 133<br />

6.4 Erweiterungsfähigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135<br />

6.4.1 Erweiterungspunkte <strong>von</strong> <strong>MontiCore</strong> . . . . . . . . . . . . . . . . . . . 135<br />

6.4.2 Vorhandene Erweiterungen . . . . . . . . . . . . . . . . . . . . . . . 137<br />

6.5 Einsatz <strong>von</strong> <strong>MontiCore</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139<br />

6.6 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140<br />

7 Verwandte Arbeiten zu <strong>MontiCore</strong> 141<br />

7.1 Ableitung der abstrakten aus der konkreten Syntax . . . . . . . . . . . . . . 141<br />

7.2 Modulare Sprachdefinitionen <strong>von</strong> Modellierungssprachen . . . . . . . . . . . 142<br />

7.3 Modellierungssprachen zur Beschreibung der konkreten Syntax . . . . . . . 143<br />

7.4 Modulare Grammatiken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143<br />

7.5 Modulare Parsealgorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . 144<br />

7.6 Modulare Attributgrammatiken . . . . . . . . . . . . . . . . . . . . . . . . . 145<br />

7.7 Sprache als Komponentenschnittstelle . . . . . . . . . . . . . . . . . . . . . 146<br />

7.8 Grammatik-basierte Sprachbaukästen . . . . . . . . . . . . . . . . . . . . . . 146<br />

7.9 Metamodellierungs-Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . 147<br />

III Definition <strong>von</strong> Werkzeugen mit dem DSLTool-Framework 149<br />

8 Methodiken zur <strong>Entwicklung</strong> <strong>von</strong> DSLs 151<br />

8.1 Transformationen für <strong>MontiCore</strong>-Grammatiken . . . . . . . . . . . . . . . . 152<br />

8.2 Erzeugung einer Grammatik aus einem Klassendiagramm . . . . . . . . . . 155<br />

8.2.1 Verwandte Arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . 156<br />

8.2.2 Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156<br />

8.2.3 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157<br />

8.3 Überführung einer BNF-Grammatik in eine <strong>MontiCore</strong>-Grammatik . . . . . 159<br />

8.3.1 Verwandte Arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . 159<br />

8.3.2 Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159<br />

8.3.3 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160<br />

8.4 Erzeugen einer Sprachdefinition aus existierendem Code . . . . . . . . . . . 162<br />

8.4.1 Verwandte Arbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . 162<br />

8.4.2 Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162<br />

8.4.3 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164<br />

8.5 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!