Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle...

23
221 Semantik visueller Sprachen: Compilersemantik 18. Dezember 2012

Transcript of Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle...

Page 1: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

221

Semantik visueller Sprachen: Compilersemantik

18. Dezember 2012

Page 2: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 222

Sprachaspekte

UML Notation

UML Metamodell

Konkrete Syntax

Abstrakte Syntax

ParsierenEditieren

Layout

CompilerSemantik

Interpret.Sem.

SemantikSemantik Semantischer Bereich

Page 3: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 223

Verschiedene Compilersemantiken

Codegenerierung aus visuellen Modellen textuelle Darstellung eines visuellen Modells eventuell detaillierter als das Modell kann eine Ausführung des Modells definieren

Übersetzung von visuellen Modellen in textuelle Exportformate

Formale Analyse von informellen und semiformalen Modellen. Übersetzung in ein formales Modell Rückübersetzung der Analyseergebnisse

Page 4: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 224

Compilersemantiken

Page 5: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 225

Beispiel: Von UML-Statecharts zu Petrinetzen

Producing

Wait4Cons

Empty

Full

Wait4Prod

Consuming

produce/ [buff.empty]/buffer++

[buff.full]/buffer--

buffer--/buffer++/ consume/

Producer Buffer Consumer

Wie sieht das entsprechende Petrinetz aus?

Page 6: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 226

Übersetzung eines Statecharts in ein Petrinetz

Zustand Stelle Falls der Zustand aktiv ist,

hat die Stelle ein Token. Event Queue Stelle

Es gibt eine Stelle für jeden Eventtyp.

Diese Stelle enthält so viele Token, wie die Event Queue Events hat.

Zustandsüberführung(en)Transition Wenn mehrere Zustands-

überführungen parallel aus-geführt werden können, dann werden sie in einer Transition zusammengefasst.

Wenn eine Transition feuert: Tokenänderung auf den

Zustandsstellen Tokenänderung auf den

Event Queue-Stellen

Page 7: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 227

Semantische Korrespondenz

Sprache 1

Sprache 2

Übersetzung

Semantik der Sprache 1

Semantik der Sprache 2

Für alle Elemente e in Sprache 1:Die Semantik von Element e in Sprache 1 korrespondiert zur Semantik des übersetzten Elements e in Sprache 2.

Page 8: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 228

Semantische Korrespondenz

Übersetzung des Statecharts SC in das Petrinetz N: Übersetzung einer Zustandsüberführung t in eine Transition t‘

Semantische Korrespondenz:Die folgenden beiden Aussagen sind äquivalent: Es gibt eine Zustandsüberführung t in SC. Es gibt einen Schaltschritt M [t‘> M‘ in Netz N.

Page 9: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 229

Modelltransformation mit Graphtransformation

Sprache 1 Sprache 2

TG1 TG2TG12

G1 Gi Gn……………… ………………

Typgraph TG12 enthält meist nicht nur die Typen der Sprachen 1 und 2, sondern noch weitere, die bei der Übersetzung helfen.

Page 10: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 230

Beispiel: Statecharts Petrinetze

1. Quellsprache: einfache UML Statecharts

• Konfigurationen von Zuständen, die AND-Zustände darstellen

• Parallele Transitionen in Steps zusammen-gefasst.

• keine Bedingungen

name

name

name

Page 11: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 231

Beispiel: Statecharts Petrinetze

2. Zielsprache: Stellen/Transitionsnetze

• Kantengewichtungen werden nicht beachtet.

name

Page 12: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 232

Beispiel: Statecharts Petrinetze Referenzmodell

Page 13: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 233

Beispiel: Transformationsregeln

Kompakte Notation für Regeln: Wenn NAC isomorph zur rechten Regelseite, werden beide

integriert dargestellt (in grün). Zu löschende Anteile werden rot dargestellt.

Page 14: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 234

Beispiel: Transformationsregeln

Übersetzung der Zustände

Page 15: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 235

Beispiel: Transformationsregeln Übersetzung der Ereignisse

Page 16: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 236

Beispiel: Transformationsregeln Übersetzung der Ereignisse und Aktionen

Page 17: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 237

Korrekte Modelltransformation

Erwünschte Eigenschaften: Funktionales Verhalten: Die Modelltransformation ergibt ein

eindeutiges Ergebnis. Konfluenz Termination

Syntaktische Konsistenz: Das Ergebnis ist korrekt getypt. Konstrukte in Quell- und Zielmodellen korrespondieren.

Verhaltensäquivalenz: Das Quell- und das Zielmodell verhalten sich gleich.

Page 18: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 238

Funktionales Verhalten

Termination: Die Modelltransformation liefert immer ein Ergebnis.

Die Termination eines Graphtransformationssystems ist im Allgemeinen unentscheidbar.

Hinreichende, nicht notwendige Terminationskriterien: Entweder: Jede Regel löscht mind. ein Quellelement und

erzeugt nur Zielelemente. Oder: Jede Regel kann nicht mehrfach an derselben Stelle

Zielelemente hinzufügen. Oder: Jede Regel reduziert die Anzahl der Elemente einer

bestimmten Typmenge.

Page 19: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 239

Funktionales Verhalten

Konfluenz: Die Modelltrans-formation führt zu einem eindeutigen Ergebnis. Falls mehrere Regeln

anwendbar Konflikte möglich

Lösung von Konflikten: Änderung der Regeln Einführung von Prioritäten

zwischen Regeln

Beispiel: Konflikt zwischen Regeln

Page 20: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 240

Syntaktische Konsistenz

Gn ist automatisch über TG12 getypt.

Ist Gn auch über TG2 getypt? Restriktion von Gn auf TG2

TG1 TG2TG12

G1 Gi Gn……………… ………………

Falls die Zielsprache über MOF beschrieben ist: Gn über TG2 getypt. Gn erfüllt die Constraints der

Zielsprache.

Page 21: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 241

Syntaktische Konsistenz

Quell- und Zielsprachen sind durch Graphgrammatiken erzeugt.

Initialisierungsproblem: S und T sind Startgraphen.

Gemischtes Konfluenzproblem: S und T sind beliebige Graphen

der Quell- bzw. Zielsprachen.

S

T

S‘

T‘

=

Nur die Zielsprache ist durch eine Graphgrammatik erzeugt: T‘ ist erzeugbar.

Page 22: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 242

Verhaltensäquivalenz

Für jede Ablaufsequenz im Quellmodell gibt es eine äquivalente Ablaufsequenz im Zielmodell.

Erster Schritt: (Teil-)Zustände im Quellmodell werden in korrespondierende (Teil-)Zustände im Zielmodell übersetzt.

Zweiter Schritt: Überprüfung der Korrespondenz von Transformationen

S1 Si Sn…… ……

T1 Ti Tn…… ……

Page 23: Semantik visueller Sprachen: Compilersemantikswt/ws12/vs/files/...Semantik der Sprache 2 Für alle Elemente e in Sprache 1: Die Semantik von Element e in Sprache 1 korrespondiert zur

Taentzer Visuelle Sprachen 243

Zusammenfassung

Compilersemantiken können durch Modelltrans-formationen definiert werden.

Modelltransformationen können präzise durch Graph-transformationen definiert werden.

Korrektheitskriterien für Modelltransformation: Termination Konfluenz syntaktische Konsistenz Verhaltensäquivalenz