• 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 andreas.lochbihler@kit.edu

Semantik von Programmiersprachen – SS 2010

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

Blatt 12: Continuations Besprechung: 06.07.2010

1. Welche der folgenden Aussagen sind richtig, welche falsch? (H) (a) raise; x := y - z; try skip catch skip ist einWhileX-Programm.

(b) raiseund while (true) do skipsind semantisch ¨aquivalent.

(c) Alle partiellen Korrektheitseigenschaften sind zul¨assig.

(d) Strikte Funktionenϕ:: (D,v)⇒(B,≤) (wobei ff≤tt) sind zul¨assige Pr¨adikate 2. Kompositionalit¨at der Fortsetzungsemantik (H)

In dieser Aufgabe sollen die Kompositionalit¨atsbetrachtungen f¨urDJ K auf die Fortsetzungsse- mantikCJ K ¨ubertragen werden.

(a) Erweitern Sie die Definition der Kontexte auf WhileX. Passen Sie die Kontextf¨ullfunktion [ ] an die Erweiterung an.

(b) Definieren Sie die FortsetzungssemantikKJKKeines KontextsK analog zuKJKK.

(c) Formulieren Sie ein Kompositionalit¨atstheorem f¨ur CJ K und KJ K analog zu Thm. 35.

Beweisen Sie es.

3. Semantik f¨ur ASM( ¨U)

In Kap. 4.1 wurde eine Small-Step-Semantik f¨ur die idealisierte Assembler-SpracheASMangege- ben. In dieser Aufgabe sollen Sie nun eine denotationale Fortsetzungssemantik f¨urASMangeben.

Dazu soll jeder Indexposition in der InstruktionslisteP eine Fortsetzung zugeordnet werden, die in einer UmgebungIEnv=Z⇒(Σ*Σ) gespeichert werden.

(a) Geben Sie eine FunktionIJ , K:: (Z×Asm)⇒IEnv⇒(Σ*Σ) mit folgender Bedeutung an: Sindieine Indexposition,I eine Instruktion undE eine Umgebung mit Fortsetzungen, dann beschreibtIJi, IKE die Ausf¨uhrung der InstruktionI mit Indexpositionizusammen mit der Forsetzung ausE(n), wobei ndie Indexposition der Instruktion angibt, die nachI auszuf¨uhren w¨are.

(b) Geben Sie ein Funktional F :: Asm list ⇒ IEnv ⇒ IEnv an, das f¨ur eine Instruktionsliste P und einer Fortsetzungsumgebung E dieses E wie folgt erweitert: FJPKE enth¨alt f¨ur jede Instruktionspositionn die Fortsetzung, die zuerst die Instruktion an Stellenausf¨uhrt und danach mit der entsprechenden Fortsetzung aus E fortf¨ahrt. Verwenden Sie dazu die FunktionIJ , K.

(c) Geben Sie die Semantik JPKeiner InstruktionslisteP an, wobeiJ K::Asm list⇒(Σ*Σ).

Verwenden Sie dazu den kleinsten Fixpunkt des FunktionalsF.

(d) Wie k¨onnte man die Existenz und Eindeutigkeit dieses kleinsten Fixpunkts beweisen?

(e) Ist diese Semantik kompositional? Diskutieren Sie!

Referenzen

ÄHNLICHE DOKUMENTE

Die Menge der nat¨ urlichen Zahlen N l¨ asst sich als Teilmenge der reellen Zahlen R wie folgt definieren:.. (a) 0 ist eine nat¨

Andreas Lochbihler Joachim Breitner andreas.lochbihler@kit.edu breitner@kit.edu. Semantik von Programmiersprachen –

Dann muss man allerdings neu ¨ uber syntaktischen Zucker f¨ ur arithmetische und boolesche Ausdr¨ ucke nachdenken: Eine Addition w¨ urde dann ggf.. l¨ anger dauern als

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

5.3 haben wir die While-Sprache um Bl¨ ocke mit lokalen Variablen erweitert und operatio- nale Semantiken daf¨

Insbesondere f¨ ur Datenflussanalysen die nur Aussagen ¨ uber einzelne Werte machen (und nicht ¨ uber Beziehungen zwischen Werte) ist es trivial die Datenfluss- analyse als

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