View
8
Download
0
Category
Preview:
Citation preview
221
Semantik visueller Sprachen: Compilersemantik
18. Dezember 2012
Taentzer Visuelle Sprachen 222
Sprachaspekte
UML Notation
UML Metamodell
Konkrete Syntax
Abstrakte Syntax
ParsierenEditieren
Layout
CompilerSemantik
Interpret.Sem.
SemantikSemantik Semantischer Bereich
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
Taentzer Visuelle Sprachen 224
Compilersemantiken
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?
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
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.
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.
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.
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
Taentzer Visuelle Sprachen 231
Beispiel: Statecharts Petrinetze
2. Zielsprache: Stellen/Transitionsnetze
• Kantengewichtungen werden nicht beachtet.
name
Taentzer Visuelle Sprachen 232
Beispiel: Statecharts Petrinetze Referenzmodell
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.
Taentzer Visuelle Sprachen 234
Beispiel: Transformationsregeln
Übersetzung der Zustände
Taentzer Visuelle Sprachen 235
Beispiel: Transformationsregeln Übersetzung der Ereignisse
Taentzer Visuelle Sprachen 236
Beispiel: Transformationsregeln Übersetzung der Ereignisse und Aktionen
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.
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.
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
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.
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.
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…… ……
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
Recommended