photography by Holger Schnell Postkartenmotive: Kunst, abstrakte ...
Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf ·...
Transcript of Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf ·...
![Page 1: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/1.jpg)
193
Semantik von visuellen Sprachen: Interpretersemantik
11. Dezember 2012
![Page 2: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/2.jpg)
Überblick Interpreter- und Compilersemantik: Gemeinsamkeiten und
Unterschiede Zwei Beispiele für Interpretersemantik:
Einfache Statecharts (hierarchische Zustandsautomaten): Sequentielle Interpretation
Statecharts mit Parallelausführungen: Zustände mit parallelen Regionen Teilweise parallele Ausführung
Amalgamierte Graphtransformation Parallele Ausführung von Multiregeln Synchronisation an Kernregeln
Unterschiede zwischen Graphen und EMF-Modellen Containment-Beziehung
Taentzer Visuelle Sprachen 194
![Page 3: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/3.jpg)
Taentzer Visuelle Sprachen 195
Sprachaspekte
UML Notation
UML Metamodell
Konkrete Syntax
Abstrakte Syntax
ParsierenEditieren
Layout
CompilerSemantik
Interpret.Sem.
SemantikSemantik Semantischer Bereich
![Page 4: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/4.jpg)
Taentzer Visuelle Sprachen 196
Semantik: 2 Wege zur Definition
Abstrakte SyntaxAbstrakte Syntax
Abstrakte Syntaxregelnspezifizieren einen abstraktenInterpreter für die Sprache.
Der Interpreter ist für die gesamteSprache definiert und kann auf alle korrekten Syntaxgraphen angewendet werden.
Jedes Sprachelement (Modell) wird in einen semantischen Bereich übersetzt.
Die Zielstruktur (Modell, Programm) ist für jedes Sprach-element (Modell) spezifisch.
OderInterpreter Compiler
![Page 5: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/5.jpg)
Taentzer Visuelle Sprachen 197
Semantik durch Graphtransformation
Abstrakte SyntaxAbstrakte Syntax
Graphtransformationsregelnspezifizieren einen abstraktenInterpreter für die Sprache.
Die Interpreterregeln sind für die gesamte Sprache definiert und können auf alle korrekten Syntaxgraphen angewendet werden.
Graphtransformationsregelnspezifizieren die Übersetzung ineinen semantischen Bereich.
Ein möglicher sem. Bereich kann dieMenge der Graphtransformations-systeme sein: Jedes Sprachelement(Modell) wird in ein Graphtrans-formationssystem übersetzt.
OderInterpreter Compiler
![Page 6: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/6.jpg)
Taentzer Visuelle Sprachen 198
Vergleich Interpreter / Compiler
Interpreter:
- sequentielle Interpretation ist häufig durch einfache Regelnspezifizierbar
- parallele Interpretation braucht parallele Regelausführung- abstrakte Syntax wird üblicherweise leicht angereichert
Modell-Compiler:
- Regeln beschreiben Model-zu-Modell-Transformation- Graphen sind komplexer, da Quell- und Zielmodell sowie
eventuell Zwischenmodelle verwaltet werden müssen- Regeln sind üblicherweise nichtlöschend, da das Quell-
modell nicht verändert und das Zielmodell aufgebaut werden
![Page 7: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/7.jpg)
Taentzer Visuelle Sprachen 199
Beispiel: UML Zustandsdiagramme
![Page 8: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/8.jpg)
Taentzer Visuelle Sprachen 200
Ausschnitt aus dem UML-Metamodell
A composite state can have at most one initial vertex.Self.subvertex->select(v | v.oclIsKindOf(Pseudostate))->
select(p: Pseudostate | p.ind = #initial)-> size<= 1
![Page 9: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/9.jpg)
Taentzer Visuelle Sprachen 201
Typgraph für Zustandsdiagramme (vereinfachte Variante)
![Page 10: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/10.jpg)
Taentzer Visuelle Sprachen 202
Abstrakte Syntaxgrammatik für Zustandsdiagramme
![Page 11: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/11.jpg)
Taentzer Visuelle Sprachen 203
Abstrakte Syntaxgrammatik für Zustandsdiagramme - 2
![Page 12: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/12.jpg)
Taentzer Visuelle Sprachen 204
Eine Beispielerzeugung
![Page 13: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/13.jpg)
Taentzer Visuelle Sprachen 205
Simulation von Zustandsdiagrammen
![Page 14: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/14.jpg)
Taentzer Visuelle Sprachen 206
Simulation von Zustandsdiagrammen
Hinweis: Es kann passieren, dass die Ausführungdurch Benutzung der Regel HierarchyUp zu früh beendet wird.
![Page 15: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/15.jpg)
Eine Beispielsimulation
Taentzer Visuelle Sprachen 207
![Page 16: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/16.jpg)
Eine Beispielsimulation - 2
Taentzer Visuelle Sprachen 208
Def. 5 sollte illustriert werden. Def. 6 vielleicht auch. Fig. 2 könnte hübscher sein. Und im letzten Abschnitt von Kap. 3 beschreibe ich Beispiel-Constraints. KönntesDef. 5 sollte illustriert werden. Def. 6 vielleicht auch. Fig. 2 könnte hübscher sein. Und im letzten Abschnitt von Kap. 3 beschreibe ich Beispiel-Constraints. Könn
![Page 17: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/17.jpg)
Erweiterung: Statecharts mit Parallelausführungen
Taentzer Visuelle Sprachen 209
Zustände können parallele Regionen haben.
![Page 18: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/18.jpg)
Beispiel: Spezifikation eines Bankautomaten
Taentzer Visuelle Sprachen 210
![Page 19: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/19.jpg)
Beispiel-instanz:
Taentzer Visuelle Sprachen 211
ATM-Statechartals Instanz des neuen Metamodells
![Page 20: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/20.jpg)
EMF-Modelle und ihre Transformation EMF-Modelle können als attributierte, getypte Graphen definiert
werden: Objekte werden als Knoten interpretiert. Referenzen werden als Kanten interpretiert. Attribute und Typvererbung können analog verwendet werden.
Containment-Beziehungen werden durch eine spezielle Art von Kanten definiert. Jedes Element hat maximal einen Container. Die Containment-Beziehung ist nicht zyklisch.
Transformationen müssen die Containment-Beziehungen konsistent halten. konsistente Transformationsregeln Objekte werden mit ihren Containment-Beziehungen erzeugt und gelöscht. Eine Containment-Kante wird immer mit ihrem Zielknoten erzeugt bzw. gelöscht. Ein Objekt kann seinen Container wechseln. Falls Containment-Kanten Zyklen bilden können, darf der Container nur so
gewechselt werden, dass der alte und der neue Container bereits in einer transitiven Containment-Beziehung stehen.
Taentzer Visuelle Sprachen 212
![Page 21: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/21.jpg)
Beispiel für eine Transformationsregel über potentiellen Containment-Zyklen
Refactoring von Statecharts: Hochschieben eines Zustands subStates ist eine Containment-Beziehung Diese ist konsistent, da ein Zustand entlang von subState-
Beziehungen verschoben werden kann. Diese Regel kann keine Containment-Zyklen einführen.
Taentzer Visuelle Sprachen 213
![Page 22: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/22.jpg)
Interpretation der erweiterten Statecharts
Taentzer Visuelle Sprachen 214
addEvent(e): Einfügen eines neuen Ereignisses in die Schlange
skipEvent(): Wegwerfen des aktuellen Ereignisses, falls nicht gebraucht
![Page 23: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/23.jpg)
Interpretation der erweiterten Statecharts
Taentzer Visuelle Sprachen 215
sequentialTransition(): Durchführung einer Transition mit dem aktuellen Ereignis
![Page 24: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/24.jpg)
Interpretation der erweiterten Statecharts
Taentzer Visuelle Sprachen 216
enterRegion(): Start der parallelen Ausführung
leaveRegion(): Ende der parallelen Ausführung
![Page 25: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/25.jpg)
Interpretation der erweiterten Statecharts
Taentzer Visuelle Sprachen 217
simultanTrans(): ein Schritt der parallelen Ausführung
In alle parallelen Regionen wird dasselbe Ereignis verarbeitet.
![Page 26: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/26.jpg)
Amalgamierte Graphtransformation
Taentzer Visuelle Sprachen 218
![Page 27: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/27.jpg)
Parallele Interpretation durch amalgamierte Graphtransformation
Parallele Anwendung von Graphtransformationsregeln Definition eines Regelschemas:
Eine Kernregel, die die Basisaktion spezifiziert. Mehrere Multiregeln, die die Kernregel als Unterregel enthalten. Die Kernregel wird genau einmal angewendet. Die Multiregeln werden sooft wie möglich so angewendet, dass ihre
Regelansätze mit dem Kernregelansatz überlappen. Die Anzahl der Multiregelansätze ist vom aktuellen Graphen abhängig. Die Vereinigung der Kernregel mit allen Kopien der angewendeten Multi-
regeln bilden die amalgamierte Regel. Die Vereinigung des Kernregel-ansatzes mit allen Multiregelansätzen bilden den amalgamierten Ansatz.
Die amalgamierte Regel wird am amalgamierten Ansatz wie üblich angewendet.
Taentzer Visuelle Sprachen 219
![Page 28: Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf · Taentzer Visuelle Sprachen 196 Semantik: 2 Wege zur Definition Abstrakte Syntax Abstrakte](https://reader034.fdocuments.net/reader034/viewer/2022050715/5d4cc1b788c99339278b7e83/html5/thumbnails/28.jpg)
Taentzer Visuelle Sprachen 220
Zusammenfassung
Die Semantik einer visuellen Sprache wird auf der Ebene der abstrakten Syntax definiert.
Interpretersemantik: universelle Regelmenge für die Interpretation aller Modelle einer
Sprache optional: Erweiterung der abstrakten Syntaxdefinition, um den
Zustand der Interpretation zu halten Ein komplexer Interpreterschritt kann nicht immer durch eine
einzige Regelanwendung definiert werden. Amalgamierte Graphtransformation ermöglicht die parallele
Anwendung von Regeln in synchronisierter Form. EMF-Modelle können durch eine spezielle Form von Regeln
konsistent gehalten werden.