30.01.2014 Aufrufe

Übersicht Formale Semantik Idee: Definiere Effekte

Übersicht Formale Semantik Idee: Definiere Effekte

Übersicht Formale Semantik Idee: Definiere Effekte

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!