• Keine Ergebnisse gefunden

Sie wollen wissen, ob das Programm die Grenzen des Arrays respektiert

N/A
N/A
Protected

Academic year: 2021

Aktie "Sie wollen wissen, ob das Programm die Grenzen des Arrays respektiert"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

WS 2013/2014 10.12.2013 Ubungen zur Vorlesung¨

B¨aume, Ordnungen und Anwendungen Blatt 8

Juniorprof. Dr. Roland Meyer Abgabe bis 17.12.2013 um 14h Aufgabe 8.1 (Array-Bound-Analyse)

Angenommen, Sie untersuchen ein Programm, das auf einem Array mit ganzen Zahlen arbeitet. Sie wollen wissen, ob das Programm die Grenzen des Arrays respektiert. Das Programm verwaltet einen Zeiger, ¨uber den es auf einzelne Elemente des Arrays zugreifen kann. Der Datenbereich des Programms ist also Z×Z. F¨ur die Analyse ist nur der Abstand des Zeigers von den R¨andern des Arrays von Bedeutung. Ist dieser Abstand negativ, so ist eine Arraygrenze ¨uberschritten worden. Weiterhin ist es nur n¨otig, das Verhalten nahe der Grenze zu untersuchen.

Geben Sie einen endlichen vollst¨andigen VerbandM an, der eine Array-Bound-Analyse erm¨oglicht. Geben Sie außerdem eine Galoisverbindung von L:=P(Z×Z) nachM an.

Hinweis: Beschreiben Sie Ihre Galoisverbindung m¨oglichst einfach, indem Sie einfachere Verbindungen kombinieren und Extraktionsfunktionen verwenden.

Aufgabe 8.2 (Galois-Verbindungen)

Betrachten Sie als Datenbereich die Menge{0,1}k, also Bin¨arstrings der L¨angek. Geben Sie eine Extraktionsfunktion an, die diesen Datenbereich nach ganz Zabbildet. Welchen abstrakten Datenbereich w¨urden Sie benutzen, um Integer- ¨Uberl¨aufe zu erkennen?

Aufgabe 8.3 (Produkte von Galoisverbindungen) Zeigen Sie:

1. Seien (Li,≤i) vollst¨andige Verb¨ande f¨ur i ∈ {1,2,3} und seien αi, γi Galoisver- bindungen f¨ur i ∈ {1,2} mit αi : Li → Li+1 und γi : Li+1 → Li. Dann ist (α2◦α1, γ1◦γ2) eine Galoisverbindung zwischen (L1,≤1) und (L3,≤3).

2. Seien αi, γi Galoisverbindungen f¨ur i ∈ {1,2} mit αi : P(Vi) → P(Di) und γi : P(Di)→P(Vi). Dann ist (α, γ) eine Galoisverbindung mit

α:P(V1×V2)→P(D1×D2) α(V0) =G

1({v1})×α2({v2})|(v1, v2)∈V0} γ :P(D1×D2)→P(V1×V2) γ(D) ={(v1, v2)|α1(v1)×α2(v2)⊆D}.

3. Seien αi, γi Galoisverbindungen f¨ur i ∈ {1,2} mit αi : P(V) → P(Di) und γi : P(Di)→P(V). Dann ist (α, γ) eine Galoisverbindung mit

α:P(V)→P(D1×D2) α(V0) =G

1({v})×α2({v})|v∈V0} γ :P(D1×D2)→P(V) γ(D) ={v |α1(v)×α2(v)⊆D}.

Hinweis: F¨ur 3. brauchen Sie den Beweis aus 2. nicht noch einmal zu f¨uhren.

Abgabe bis 17.12.2013 um 14h im Kasten neben Raum 34-401.4

Referenzen

ÄHNLICHE DOKUMENTE

Das Programm verwaltet einen Zeiger, ¨ uber den es auf einzelne Elemente des Arrays zugreifen kann. Wir nehmen an, dass der Zeiger einen Wert aus Z annimmt. Die tats¨ achliche

Angenommen, Sie untersuchen ein Programm, welches auf einem Array statischer Gr¨ oße arbeitet. Das Programm verwaltet einen Zeiger, ¨ uber den es auf einzelne Elemente des

läuft durch die array Elemente setzt das erste array Element auf 500 setzt das zweite array Element auf 1000 setzt das dritte array Element auf 3000. setzt das vierte

Teil 1: Schreiben Sie ein Programm, das das innere Produkt zweier Vektoren berechnet, wobei die Berechnung innerhalb einer Schleife erfolgen soll. Der korrekte Programmlauf muss

For one sin- gle plane wave, the conversion improves the performance in terms direction dependent loudness, source width, and angular mapping accuracy. The improvement compared to

Wenn er aber dyna- misch ist, wenn also Elemente eingefügt werden oder gelöscht werden, ist die Sache a priori nicht mehr so effizient: Wenn man ein neues Element an die richtige

 Falls alle Elemente kleiner als ihr rechter Nachbar sind, gib true zurück. 7

Methode kontoEroeffnen in der Klasse Bank public boolean kontoEroeffnen(int kontoNr,.