Semantik von visuellen Sprachen: Interpretersemantikswt/ws12/vs/files/FolienVS121211.pdf ·...

28
193 Semantik von visuellen Sprachen: Interpretersemantik 11. Dezember 2012

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

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

Ü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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.