Ãbersicht Formale Semantik Idee: Definiere Effekte
Ãbersicht Formale Semantik Idee: Definiere Effekte
Ãbersicht Formale Semantik Idee: Definiere Effekte
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Kleines Beispiel-Programm<br />
• Programm: z:=x; x:=y; y:=z<br />
• <strong>Semantik</strong> des Programms:<br />
– Funktion S, die Zustände in Zustände transformiert<br />
• Seien S«z:=x¬, S«x:=y¬, S«y:=z¬ jeweils die<br />
Funktionen für die Einzelanweisungen, die den<br />
Zustand entsprechend modifizieren<br />
• Dann ist die Funktion für die Anweisungssequenz:<br />
S«z:=x; x:=y; y:=z ¬ = S«y:=z¬ ◦ S«x:=y¬ ◦ S«z:=x¬<br />
• Man beachte die umgekehrte Reihenfolge, die der<br />
üblichen Notation für Funktionsverkettung<br />
entspricht.<br />
Effekt des Beispielprogramms<br />
• Anfangszustand: x hat den Wert 5,<br />
y den Wert 7 und z den Wert 0<br />
• S«z:=x; x:=y; y:=z ¬([xa 5, ya 7, za 0]) =<br />
= (S«y:=z¬ ◦ S«x:=y¬ ◦ S«z:=x¬) ([xa 5, ya 7, za 0])<br />
= S«y:=z¬(S«x:=y¬(S«z:=x¬([xa 5, ya 7, za 0])))<br />
= S«y:=z¬(S«x:=y¬([xa 5, ya 7, za 5]))<br />
= S«y:=z¬([xa 7, ya 7, za 5])<br />
= ([xa 7, ya 5, za 5])<br />
5<br />
HPS WS 2002/03<br />
Dr. Sabine Glesner<br />
6<br />
HPS WS 2002/03<br />
Dr. Sabine Glesner<br />
Kompositionalität<br />
Beispiele kompositionaler Definitionen<br />
7<br />
• Die abstrakte Syntax spezifiziert<br />
syntaktische Sorten<br />
– Basiselemente (=Blätter im Syntaxbaum) und<br />
– zusammengesetzte Elemente (innere Knoten)<br />
– zusammengesetzte Elemente haben eindeutige<br />
Dekomposition<br />
• <strong>Semantik</strong> wird kompositional definiert:<br />
– semantische Funktion für jedes Basiselement<br />
– semantische Funktionen für innere Knoten<br />
zusammengesetzt aus semantischen Funktionen<br />
der direkten Nachfolger<br />
HPS WS 2002/03<br />
Dr. Sabine Glesner<br />
8<br />
• Funktion A: Aexp × states → Z<br />
– weist arithemtischen Ausdrücken Zahlen in Z zu<br />
A«n]s = N«n¬<br />
A«x]s = Lookup(s,x)<br />
A«a 1 +a 2 ¬s = A«a 1 ¬s + A«a 2 ¬s<br />
A«a 1 - a 2 ¬s = A«a 1 ¬s- A«a 2 ¬s<br />
A«a 1 * a 2 ¬s = A«a 1 ¬s * A«a 2 ¬s<br />
• Funktion B: Bexp × states → {tt, ff} analog<br />
HPS WS 2002/03<br />
Dr. Sabine Glesner