04.06.2013 Aufrufe

Skript zur Vorlesung - Universität Paderborn

Skript zur Vorlesung - Universität Paderborn

Skript zur Vorlesung - Universität Paderborn

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.

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-

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!