• Keine Ergebnisse gefunden

Universit¨at Karlsruhe (TH) Lehrstuhl f¨ur Programmierparadigmen

N/A
N/A
Protected

Academic year: 2022

Aktie "Universit¨at Karlsruhe (TH) 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 WS 2008/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

Ubungsblatt 14¨ Ausgabe: 6.2.2009 Besprechung: 11.2.2009

Aufgabe 1:Ershov-Zahlen

Berechnen Sie Ershov-Zahlen f¨ur die folgenden Ausdr¨ucke:

1. a/(b+c)−d∗(e+f) 2. a+b∗(c∗(d+e))

3. (−a+∗p)∗((b− ∗q)/(−c+∗r))

Hinweis: Wir gehen davon aus, dass un¨are Operationen nur ein einziges Register ben¨otigen.

• Der un¨are ∗ Operator steht f¨ur eine Dereferenzierung. Diese kann mit dem Befehl LD Ri, Ri realisiert werden.

• Die Negation kann durch den Befehl SUB Ri, #0, Ri realisiert werden.

1.1Optimaler Code - 3 Register

Erzeugen Sie mit drei Registern optimalen Code f¨ur die obigen Ausdr¨ucke.

1.2Optimaler Code - 2 Register

Erzeugen Sie mit zwei Registern optimalen Code f¨ur die obigen Ausdr¨ucke.

Aufgabe 2:Garbage-Collection c l a s s A {

A l e f t ; A r i g h t ;

s t a t i c A c r e a t e ( ) {

A a1 = new A ( ) ; A a2 = new A ( ) ; A a3 = new A ( ) ; A a4 = new A ( ) ; A a5 = new A ( ) ; A a6 = new A ( ) ; A a7 = new A ( ) ; A a8 = new A ( ) ; A a9 = new A ( ) ;

a1 . l e f t = a2 ; a1 . r i g h t = a3 ; a2 . l e f t = a4 ; a2 . r i g h t = a5 ; a3 . l e f t = a6 ;

a4 . l e f t = a7 ; a5 . l e f t = a3 ; a6 . l e f t = a8 ;

a7 . l e f t = a5 ; a7 . r i g h t = a8 ; a8 . l e f t = a9 ;

a9 . l e f t = a7 ; return a1 ; }

(2)

public s t a t i c i n t main ( S t r i n g [ ] a r g v ) { A a = A. c r e a t e ( ) ;

// . . . }

}

Erstellen Sie einen Objektgraphen f¨ur das obige Programm f¨ur die Stelle nach dem Aufruf von ’A.create()’.

2.1Referenzz¨ahler

Wie sehen die Referenzz¨ahler der Objekte aus, wenn ein Garbage-Collector mit Referenzz¨ahlern verwendet wird?

• Zeigen Sie die Auswirkungen der Anweisung ’a. left = null’ auf die Referenzz¨ahler und f¨uhren Sie ansch- liessend eine Speicherbereinigung durch.

• Zeigen Sie die Auswirkungen der zus¨atzlichen Anweisung ’a = null’ auf die Referenzz¨ahler und f¨uhren Sie erneut eine Speicherbereinigung durch.

2.2Kopier-Collector

Unser Garbage-Collector sei nun als Kopier-Collector implementiert. Skizzieren Sie Anordnung der Objekte auf dem Heap f¨ur die Stelle nach dem Aufruf von ’A.create()’ unter der Annahme, dass beim Start der main Methode der Heap v¨ollig leer ist. Zeichnen Sie auch die Referenzen der Objekte ein.

F¨uhren Sie erneut eine Speicherbereinigung nach den Anweisungen ’a. left = null’ und ’a = null’ durch und zeigen Sie jeweils die Anordnung der Objekte auf dem Heap.

2

Referenzen

ÄHNLICHE DOKUMENTE

Die lexikalische Analyse ist strenggenommen nur eine Optimierung, die die Eingabe in eine Form bringt die besser f¨ ur die syntaktische Analyse geeignet ist.. Sie f¨ uhrt zu

Zwar ist ASCII heutzutage so gut wie ¨ uberall unterst¨ utzt, viele Sprachen ben¨ otigen aber weitere Zeichen die in ASCII nicht enthalten sind. Typische ASCII-Erweiterungen im

Es wird also anscheinend kein speziellere Datentyp f¨ ur Closures angelegt, der einen Funktionszeiger und einen Zeiger auf die Umgebung

• Nehmen Sie an die Anzahl der Register ist auf 3 beschr¨ ankt, spielt die Auswertungsreihenfolge bei den Ausdr¨ ucken jetzt noch eine Rolle. Aufgabe

Konstruieren Sie unter der Voraussetzung, dass alle nicht konstanten Operanden im Arbeitsspeicher stehen, Syntaxb¨ aume f¨ ur die folgenden Anweisungen:. 1. x = x

Semantische Analyse: Namensanalyse, Typanalyse, Operatoridentifikation, Konsistenzpr¨ ufung, Sprach- abh¨ angige Sonderaufgaben, Struktur¨ aquivalenz, Definitionstabelle,

Erstelle daf¨ ur zun¨ achst eine Tabelle mit den Gen- und Kill-Mengen der einzelnen Bl¨ ocke und f¨ uhre danach eine

F¨uhren Sie eine GOTO-Elimination f¨ur die folgende Methode durch (continue ist auch eine spezielle Form