• Keine Ergebnisse gefunden

Lehrstuhl f¨ ur Programmierparadigmen

N/A
N/A
Protected

Academic year: 2022

Aktie "Lehrstuhl f¨ ur Programmierparadigmen"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Lehrstuhl f¨ ur Programmierparadigmen

Andreas Lochbihler Joachim Breitner andreas.lochbihler@kit.edu breitner@kit.edu

Semantik von Programmiersprachen – SS 2012

http://pp.info.uni-karlsruhe.de/lehre/SS2012/semantik

Blatt 3: Small-Step-Semantik Besprechung: 8.05.2012

1. Welche der folgenden Aussagen sind richtig, welche falsch? (H)

(a) b1 && b2 verh¨alt sich semantisch wie if (b1) then true else b2.

(b) hif (b) then c1 else c2, σi undhif (not b) then c2 else c1, σi haben die gleichen Ableitungsfolgen.

(c) Wenn hc1; c2, σi→ 1hc01; c2, σ0i, dann auchhc1, σi→ 1hc01, σ0i.

(d) Wennhc, σi→n1 hc, σi, dannn= 0.

(e) hx := 1; while (x <= 2) do x := x * 2, σi→121 hskip, σ[x7→4]i.

(f) Wenn hc, σi→1 hskip, σ0i, dann enth¨alt csyntaktisch keine Schleife der Form while (true) do c0.

(g) Wenn (γi)i und (δj)j Ableitungsfolgen f¨urhc, σi sind, dann (γi)i = (δj)j.

(h) Wennhc, σi→1 hc0, σ0i, dann enth¨alt c0 h¨ochstens dreimal so viele AST-Knoten wiec.

2. Small-Step simuliert Big-Step (H)

Beweisen Sie durch Induktion ¨uber die Regeln der Big-Step-Semantik, dass jede Ausf¨uhrung in der Big-Step-Semantik eine ¨aquivalente Ausf¨uhrung in der Small-Step-Semantik besitzt, d.h.:

Aushc, σi ⇓σ0 folgt hc, σi→ 1hskip, σ0i.

3. Semantische ¨Aquivalenz bei Small-Step ( ¨U)

Zwei Programme c und c0 sind ¨aquivalent bez¨uglich der Small-Step-Semantik, falls f¨ur alle Zust¨andeσ,σ0 gilt:

(i) hc, σi→1 hskip, σ0i genau dann, wenn auch hc0, σi→1 hskip, σ0iund (ii) hc, σi→1 genau dann, wenn auchhc0, σi→1.

Vergleichen Sie diesen ¨Aquivalenzbegriff mit dem semantischen ¨Aquivalenzbegriff f¨ur die Big- Step-Semantik. Sie k¨onnen dazu davon ausgehen, dass f¨ur alle c,σ und σ0 gilt:

hc, σi ⇓σ0 gdw. hc, σi→ 1hskip, σ0i.

Beweisen Sie, dass die folgenden Programme im Small-Step-Sinn ¨aquivalent sind:

(a) while (b) do cund if (b) then c; while (b) do c else skip (b) c; while (true) do c0 und while (true) do c00

(c) Wenn c undc0 ¨aquivalent sind, dann auchwhile (b) do c und while (b) do c0. Uberlegen Sie sich einen sinnvollen ¨¨ Aquivalenzbegriff, f¨ur den (c) nicht gilt.

Referenzen

ÄHNLICHE DOKUMENTE

Es gibt daf¨ ur zwei Operationen, welche f¨ ur Up-Casts typsicher sind, static cast und dynamic cast (Bemerkung: C-Style Casts, also z.B. (C)b sind nicht typsicher, sollten also mit

Dies ist genau die Regel f¨ ur Induktion ¨ uber nat¨ urliche Zahlen: Um eine Aussage f¨ ur eine beliebige nat¨ urliche Zahl zu zeigen, gen¨ ugt es, sie f¨ ur 0 zu zeigen, und f¨ ur

Die Big-Step und Small-Step-Semantiken verwenden f¨ ur Ausdr¨ ucke die Semantikfunktionen A J K und B J K , die f¨ ur alle Ausdr¨ ucke und Zust¨ ande definiert sind und in einem

Typsicherheit l¨ asst sich auch f¨ ur eine Big-Step-Semantik zeigen, in dieser Aufgabe f¨ ur While T : (a) ¨ Andern Sie die Auswertungsrelation so, dass eine Anweisung mit einem

4.1 wurde eine Small-Step-Semantik f¨ ur die idealisierte Assembler-Sprache ASM

Die Maschine, auf der die ¨ ubersetzten Ausdr¨ ucke abgearbeitet werden sollen, nimmt eine Liste von Instruktionen, einen (anfangs leeren) Stack und einen Zustand mit der

Beachte dass sich diese Implementierung nicht direkt mit der Implementierung von for mittels while kombinieren l¨ asst, da auch bei continue die Z¨ ahlvariable erh¨ oht werden

Somit l¨ asst sich nicht garantieren, dass die L¨ osung als F¨ arbung f¨ ur das urspr¨ ungliche Programm