• Keine Ergebnisse gefunden

Lehrstuhl f¨ ur Programmierparadigmen

N/A
N/A
Protected

Academic year: 2022

Aktie "Lehrstuhl f¨ ur Programmierparadigmen"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Universit¨ at Karlsruhe (TH)

Lehrstuhl f¨ ur Programmierparadigmen

Sprachtechnologie und Compiler II SS 2009 http://pp.info.uni-karlsruhe.de/

Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de Ubungsleiter: Matthias Braun¨ braun@ipd.info.uni-karlsruhe.de

L¨osung zu ¨Ubungsblatt 6 Ausgabe: 30.6.2009 Besprechung: 7.7.2009

Aufgabe 1:Abstrakte Interpretation - Sign Analysis

In dieser Aufgabe soll eine einfache Analyse entworfen werde, die Werte von Variablen danach einteilt, ob sie Positiv, Negativ oder 0 sind.

1.1Galois Verbindung

• Geben Sie einen passenden Verband f¨ur ihre Analyse an.

L¨osung:

>

{-, 0} { -, +} { 0, +}

{-} { 0} { +}

• Stellen Sie eine Galois-Verbindung von der Potenzmenge der ganzen Zahlen zu ihrem Verband auf.

L¨osung:

Menge:P({−,0,+}) γ:P({−,0,+})→ P(Z)

γ(x) ={z|z <0 if− ∈x;z= 0 if 0∈x;z >0 if +∈x}

α:P(Z)→ P({−,0,+})

α(x) ={z| − if∃z∈x:z <0; 0 if 0∈x; + if∃z∈x:z >0}

1.2Semantik

Stellen Sie eine (operationale) Semantik f¨ur alle Zeilen des folgenden Programms auf. Ein Zustand besteht dabei aus einem Paar von Programmpunkt (Zeile) und Wert der Variablenk.

1 while(k>0) { 2 k = k−2;

3 if (k == 0)

4 k = k + 7;

5 }

6 if (k <0)

7 k = 0;

8 ;

(2)

L¨osung:

1, k k >0 2, k

1, k k≤0 6, k

2, k 3,(k−2)

3, k k= 0 4, k

3, k k6= 0 1, k

4, k 1,(k+ 7) 6, k k <0

7, k

6, k k≥0 8, k

7, k 9,0

1.3Abstrakte Intepretation/Trace-Trees

F¨uhren Sie eine abstrakte Interpretation durch und geben sie alle m¨oglichen Trace-Trees an.

L¨osung:

p1,−

p1,0 p6,0 p1,+

p2,+

p3,+ p3,0 p4,+

p3,− p6,− p7,−

p8,0

Aufgabe 2:Abstrakte Interpretation

• ”A static analysis of a program is a sound, finite and approximate calculation of the program’s executions”.

Was bedeuten die Begriffesound,finiteundapproximatein diesem Zusammenhang?

L¨osung:

– Eine Analyse wird alssound(fehlerfrei, gr¨undlich) bezeichnet, wenn alle M¨oglichen Effekte und Eigenschaften eines Programms in der Analyse beachtet werden sofern diese Auswirkungen auf das Ergebnis der Analyse haben.

– Die Analyse istfinite(endlich) da nur mit endlich vielen Zwischenzust¨anden und endlichen Ver- b¨anden operiert wird. Ansonsten kann die Termination der Analyse nicht immer sichergestellt werden.

– Die Berechnung ist approximate, da sie den eigentlichen Wertebereich der Berechnung durch Rechnung auf einem gr¨oberen Wertebereich ann¨ahert.

• Wie stehen abstrakte Interpretation und Datenflussanalyse miteinander in Beziehung?

L¨osung:

Abstrakte Interpretation ist eine allgemeinere Technik auf die praktisch alle bekannten Program- manalysen abgebildet werden k¨onnen. Insbesondere f¨ur Datenflussanalysen die nur Aussagen ¨uber einzelne Werte machen (und nicht ¨uber Beziehungen zwischen Werte) ist es trivial die Datenfluss- analyse als abstrakte Interpretation anzugeben.

2

Referenzen

ÄHNLICHE DOKUMENTE

1 Dieser Mechanismus ¨ ahnelt den Exceptions von Java, es gibt allerdings nur eine einzige Sorte

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¨

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