Übersetzerbau 2 Prüfungsprotokol
Table of Contents
1. Vor der Prüfung
Ich war etwas zu früh da, und mache die Tür selbst auf. Ich darf mich gleich hinsetzen und werde gefragt ob gleich angefangen werden soll, oder wir bis ganz warten. Ich bitte darum zu warten und es wird noch ein wenig klein-gesprochen
Ich werde gefragt ob ich vorbereitet bin, und meine (Standardwitz), dass ich dafür heute gekommen bin, das herauszufinden. Das wird als lustig wahrgenommen und wir fangen bald danach an.
2. Die Prüfung selbst
2.1. Phasen eines Compilers
- Phasen aufgezählt
2.2. Braucht man die Semantische Analyse?
Ich stocke, weil ich erst nur an Typprüfung denke. Ich werde darauf hinwiesen, dass es noch mehr als nur das gibt.
Kommt auf die Programmiersprache an, in e2 ja weil wir feststellen wollen welche Symbole die gleichen Variablen darstellen sollen.
2.3. Typ-Analyse erklären
Code Stück gegeben:
var a : int[1000]; var b : int[1000]; var g : real; func main(): int var i : int; # ... g := some_func(a[i], a[b[i]]); end func some_func(a : int, b : int): int return a + b end
2.4. Visitor Erklären
- Wir brauchen es weil Java keine Multimethods hat
- Papier (a5, zweiseitig) gegeben mit Code-Lücken
- Ich vertue mich im aufschreiben vom Code (vertausche
accept
undvisit
)
2.5. Sethi-Ullman an einem Baum Erklaeren
+_____ / \ * \ / \ * a + / \ / \ \ / b c + / \ a b
- Ershov Zahlen bestimmen
- Was passiert wenn man nur ein Register hat
2.6. Graph-Färeben erklären
v1 := LOAD v2 := v1 v3 := v2 v4 := v3 + v1 v5 := v2 + v4 v6 := v5 + v5
so wie der dazugehörige Graph mit Move-Kanten.
- Allgemeinen Ansatz erklären
- Wie hängt der Code mit dem Graphen zusammen
- Woraus besteht der Graph (die Konten sind Lebensspannen)
2.6.1. Transferfrage: Wie kann man Graph-Färben Optimal Lösen
SMT solver sollten helfen können.
2.7. Transferfrage: Dynamische Programmierung
- Welche Teile der Code-Generierung werden behandelt.
- Macht es Instruktionsanordnung
3. Nach der Prüfung
Ich verlasse auf bitte das Zimmer und warte vor der Tür. Nach kurzer Zeit werde ich darum gebeten wieder hereinzukommen und werde gefragt wie ich die Prüfung fand. Ich erwähne, dass ich mich an mindestens zwei stellen vertat habe (Visitor, Graph-Färbung) also schließe ich eine 1.0 aus. Philippsen widerspricht mir und meint die Prüfung empfand er als angenehm. Ich bin überrascht und bedanke mich.