• 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 12¨ Ausgabe: 23.1.2009 Besprechung: 28.1.2009

Aufgabe 1:Codeerzeugung 1.1Ausdrucksb¨aume

Erzeugen Sie Code f¨ur folgende Ausdr¨ucke (z.B. f¨ur die RISC Maschine aus ¨Ubungsblatt 9/10):

• (a1∗(a2 + (a3<<(a4 +a5))))

• ((((a1 +a2)∗a4)>> a4) +a5)

• ((((a1 +a2) +a3)∗a4) + (a5∗(a6<<(a7 +a8))))

Verwenden Sie zuerst das Verfahren:zuerst linken, dann rechten Ausdruck auswerten, dann das Verfahrenzuerst rechten, dann linken Ausdruck auswerten.

Wieviele Register ben¨otigen Sie?

1.2Optimale Registerzuteilung f¨ur Ausdrucksb¨aume

Gibt es ein besseres Verfahren? Sind die Voraussetzungen f¨ur dieses Verfahren erf¨ullt? Wieviele Register ben¨o- tigen Sie f¨ur die Ausdr¨ucke aus der letzten Aufgabe?

1.3Auslagern

• Was versteht man unter dem Auslagern eines Wertes?

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

Aufgabe 2:Befehlsauswahl

Die Befehlsauswahl setzt eine Reihe von Zwischen- oder Quellsprachbefehlen in eine Sequenz von Befehlen der Zielmaschine um. Was sollte man bei einer guten Auswahl beachten? Was k¨onnte in eine Kostenfunktion f¨ur Befehlsauswahlen einfließen.

(2)

Aufgabe 3:Befehlsauswahl als Termersetzung 3.1B¨aume

Stellen Sie folgendes Programm als folge von Ausdrucksb¨aumen dar, Anweisungen sind dabei Baumwurzeln.

int f (int x, int y, int z) {

int k = x∗2 / (y + z);

int k2 = (k∗ 4) + (y+(z∗x−(y+z)));

int k3 = x∗8−(z∗x);

if (k3∗ (k2−k)<100){ return42−z;

} else {

return10∗ k;

} }

3.2Ausdrucksb¨aume f¨ur Maschinenbefehle

Wiederholung: Der x86 Speicheradressierungsmodus erlaubt Adressierungen nach folgendem Schema:

Offset +Rb+Ri∗s

Offset ist eine beliebige 32bit-Konstante, Rb und Ri sind Register und x ∈ {1,2,4,8}. Rb und Ri∗s sind optional.

• Stellen Sie Ersetzungsregeln f¨ur Ausdrucksb¨aume zum erzeugen des IA-32 LEA Befehls auf. Der LEA Befehl berechnet eine Speicheradresse und schreibt das Ergebnis in ein Register. Wie viele m¨ogliche B¨aume k¨onnen Sie finden?

• Wie k¨onnte man die Anzahl der ben¨otigten Regeln reduzieren?

• Stellen Sie weitere Ersetzungsregeln f¨ur IA32-Befehle auf, bis Sie in der Lage sind die Ausdrucksb¨aume aus der vorherigen Teilaufgabe zu ¨uberdecken. Geben Sie IA32-Befehle f¨ur die Ausdrucksb¨aume an.

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

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

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

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