• Keine Ergebnisse gefunden

2.1 Operationale Semantik von Ausdrücken 5 Punkte

N/A
N/A
Protected

Academic year: 2022

Aktie "2.1 Operationale Semantik von Ausdrücken 5 Punkte"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Serge Autexier Christoph Lüth Korrekte Software: Grundlagen und Methoden SoSe 17

2. Übungsblatt

Ausgabe: 20.04.17 Abgabe: 27.04.17

2.1 Operationale Semantik von Ausdrücken 5 Punkte

In der Vorlesung wurde die operationale Semantik von C0 eingeführt. Geben Sie die Ableitung der Auswer- tung folgender Ausdrücke in der operationalen Semantik unter einem gegeben Zustandσan:

• 5∗ (3 + x)mitσ(x) =7

• a || (a && b)mitσ(a) =1 undbundefiniert

• (a && b) || amitσ(a) =1 undbundefiniert

2.2 Programmgleichheit 10 Punkte

Beweisen Sie die Äquivalenz der folgenden beiden Programmew1undw2.

w1≡ x = 1;

m = 2;

while (m > 0) { x = x ∗ 2;

m = m− 1;

} r = x ; x = 1;

w2≡ x = 1;

r = 1;

m = 1;

while (m <= 2) { r = r ∗ 2;

m = m + 1;

} m = 0;

Gehen Sie dabei vor wie in der Vorlesung und und zeigen Sie, dass für beliebige Anfangszuständeσjeweils ein zuσ[1/x][0/m][4/r]äquivalenter Endzustand erreicht wird. Berücksichtigen Sie, dass folgende Äquivalenzen auf Zuständen gelten:

σ,n,m,∀X,Y.X6=Y⇒σ[n/X][m/Y] =σ[m/Y][n/X]

σ,n,m,∀X.σ[n/X][m/X] =σ[m/X]

— Seite 1 von 2 —

(2)

2. Übungsblatt Korrekte Software: Grundlagen und Methoden, SoSe 17

2.3 Bedingungen 5 Punkte

Wir betrachten die Syntax für C0 aus der Vorlesung:

Aexp a::=N|Loc|a1+a2|a1−a2|a1∗a2|a1/a2

Bexp b::=0|1|a1==a2|a1!=a2|a1<=a2|!b|b1&&b2|b1||b2

Exp e:=Aexp|Bexp

Stmt c::=Loc=Exp; | if(b)c1 else c2| while(b)c| {c}

In C0 gibt es auch den ternären BedingungsoperatorB?E1 : E2, sowohl für arithmetische als auch boolsche Ausdrücke.

• Erweitern Sie die Syntax für arithmetische Ausdrücke um den ternären Bedingungsoperator.

• Definieren Sie entsprechend die operationalen Semantik für den Bedingungsoperator durch Angabe der geeignete Regeln. Achten Sie auf Vollständigkeit und Striktheit — wann ist der gesamte Ausdruck un- definiert?

• Erweitern Sie die Syntax auch für boolesche Ausdrücke um den ternären Bedingungsoperator und defi- nieren Sie die operationale Semantik entsprechend.

— Seite 2 von 2 —

Referenzen

ÄHNLICHE DOKUMENTE

I Die (operationale) Semantik einer imperativen Sprache wie C0 ist ein Zustandsübergang: das System hat einen impliziten Zustand, der durch Zuweisung von Werten an Adressen

Für die While-Schleife Rückgriff auf Definition des Fixpunkts und Induktion über die Teilmengen Γ i (∅)

Geben Sie die Ableitung der Auswer- tung folgender Ausdrücke in der operationalen Semantik unter einem gegeben Zustand s an. Nutzen Sie hierzu die lineare Schreibweise wie sie in

I Die (operationale) Semantik einer imperativen Sprache wie C0 ist ein Zustandsübergang: das System hat einen impliziten Zustand, der durch Zuweisung von Werten an Adressen

Für die While-Schleife Rückgriff auf Definition des Fixpunkts und Induktion über die Teilmengen Γ i (∅)

Serge Autexier Christoph Lüth Korrekte Software: Grundlagen und Methoden SoSe

I Die (operationale) Semantik einer imperativen Sprache wie C0 ist ein Zustandsübergang: das System hat einen impliziten Zustand, der durch Zuweisung von Werten an Adressen

Zu zeigen ist, dass sowohl w also auch if (b) {c; w} else { } zu dem selben Programmzustand auswerten oder beide zu