* Prüfer: Philippsen * Beisitzer: Baer * Prüfungsdauer: 30 Minuten ====== Analysephase ====== * Was ist der Unterschied zwischen Namens- und Symboltabelle? * Kann man auch ohne Namenstabelle einen Compiler bauen? Kann man auch ohne Symboltabelle einen Compiler bauen? ====== Beispielcode ====== * Gegeben ist folgender Code. int foo(int x, real y, int z) { return x + y; } int foo(int x, int y, int z) { return x + y + z; } int main() { int x = 10; int y = 100; foo(x, 47 / 11, 100); } * Wie funktioniert da die Typanalyse von ''foo(x, 47 / 11, 100);'' * Woher weiß ich, welches der beiden ''foo'' ausgewählt wird? * Wie klappt das mit/ohne Prototypen? (Hier ist keine klare Aufteilung Namens- und Typanalyse möglich. Die beiden Phasen müssen verzahnt verlaufen.) ====== Abbildungsphase ====== * Was kommt dann? (Abbildungsphase mit Transformationen und Zwischencodegenerierung) * Warum will man Zwischensprachen haben? ====== Codierungsphase ====== * Welche Verfahren zur Codegenerierung gibt es? * Baumtransformation, wie funktioniert das? * Wir haben Zwischencode, warum verwenden wir jetzt wieder einen Baum? Woher kommt der? * Gegeben war ein Ausdrucksbaum und eine Maschinengrammatik, man sollte das Baumtransformationsverfahren anwenden. ====== Visitor ====== * Was ist die Idee des Besuchsentwurfsmuster? * Wie schaut die Klassenhierarchie für das Besuchsentwurfsmuster aus? ====== Allgemein ====== Lief sehr schlecht, die Note eigentlich zu gut. Auch schön?