Skript zur Vorlesung - Universität Paderborn
Skript zur Vorlesung - Universität Paderborn
Skript zur Vorlesung - Universität Paderborn
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
32 KAPITEL 3. OPERATIONALE SEMANTIK<br />
Operator definieren, der das Ergebnis des Ausdrucks ausgibt, sobald es aus<br />
dem Ergebnis eines der beiden Argumente folgt.<br />
Im Gegensatz zu den Regeln für die arithmetischen Ausdrücke, gibt es für<br />
die Auswertung der booleschen Ausdrücke in manchen Fällen mehrere Regeln<br />
die man bei der Auswertung anwenden kann. Ein Beispiel dafür ist ein<br />
boolescher Ausdruck b0∧b1 bei dem sowohl b0 als auch b1 zu false ausgewertet<br />
werden. Denn dann sind zwei Regel anwendbar. Glücklicherweise führt<br />
die Anwendung beider Regeln zu demselben Ergebnis. Wir werden in einer<br />
Übung beweisen, daß die Auswertung der booleschen Ausdrücke gemäß der<br />
obigen Definition tatsächlich immer eindeutig ist.<br />
Analog <strong>zur</strong> Definition der Äquivalenz von arithmetischen Ausdrücken, definieren<br />
wir nun die Äquivalenz der booleschen Ausdrücke. Zwei boolesche<br />
Ausdrücke sind äquivalent, wenn sie in jedem Zustand gleich ausgewertet<br />
werden:<br />
Definition 3.5 (Äquivalenz boolescher Ausdrücke)<br />
Zwei boolesche Ausdrücke b0 und b1 heißen äquivalent, wenn für jeden Zustand<br />
σ und jeden Wahrheitswert t ∈ B die Aussage 〈b0, σ〉 → t genau dann<br />
gilt, wenn auch 〈b1, σ〉 → t gilt. Wenn b0 und b1 äquivalent sind, dann schreiben<br />
wir b0 ∼ b1.<br />
Beispielsweise können wir die Regel von De Morgan als Äquivalenz formulieren:<br />
Für alle booleschen Ausdrücke b0 und b1 gilt b0 ∨ b1 ∼ ¬(¬b0 ∧ ¬b1).<br />
Diese kann man mit Hilfe der Regeln <strong>zur</strong> Definition der Auswertungsrelation<br />
nachweisen.<br />
3 Semantik der Anweisungen<br />
Nachdem wir nun Ausdrücke auswerten können, werden wir als nächstes die<br />
Semantik von Anweisungen der Programmiersprache IMP angeben. Dabei<br />
definieren wir eine dreistellige Relation über Com, Σ und Σ. Ein Element<br />
dieser Relation geben wir in der folgenden Notation an:<br />
〈c, σ〉 → σ ′<br />
Dabei bedeutet 〈c, σ〉 → σ ′ , daß die Anweisung c im Zustand σ ′ terminiert,<br />
wenn man sie im Zustand σ startet. Für die Zuweisung x:= 5 gilt beispiels-