Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 2 » Compilerbau
- Pruefer: Philippsen, Sieh
- Themengebiete: Compilerbau 1, Virtuelle Maschinen
- Pruefungszeitraum: Oktober 2011
- Ergebnis: 1.0
Die Atmosphaere war sehr angenehm und positiv, es gibt bei Problemen Hilfestellungen.
Compilerbau
Angefangen haben wir mit Graham & Glanville; gegeben war ein Blatt mit einem Befehlssatz (auch register indirect mit Offset!), eine Zuweisung mit Arrayzugriff auf beiden Seiten, und der zugehoerige Ausdrucksbaum. Ich sollte die Vor- und Nachteile von G&G nennen, und ein bisschen erklaeren warum es fuer CISC-Architekturen eher schlecht geeignet ist. Dann beispielhaft die Grammatik hinschreiben, den kompletten Baum in Prefixform bringen, und ein paar Schritte Shift-Reduce-Parsing vorfuehren (hier wollte er glaube ich eigentlich nur hoeren, dass man einen solchen Parser benutzt). Dann gings um die Konflikte die beim Parsen auftreten koennen, und wie das mit dem maximalen Verschlingen gedacht ist, da habe ich auch erwaehnt, dass die Baumtransformationen das besser hinkriegen. Ueber die Tatsache, dass G&G unendlich viele virtuelle Register annimmt sind wir dann zum Registerfaerben gekommen, habe den Aufbau von Kollisions- und Interferenzgraphen erlaeutert, hier nicht vergessen, auch die Bestimmung der Lebendigkeit zu erklaeren.
Es gab IIRC noch ein paar weitere kleine Fragen, an die ich mich leider nicht mehr erinnere.
Virtuelle Maschinen
Hier liefs irgendwie eher wirr und unkoordinert ab, wir haben ausgehend vom Webhoster-Szenario ein bisschen ueber effiziente Virtualisierungsmethoden gesprochen, wobei ich detaillierter auf die Betriebssystembasierte eingegangen bin. Wichtig sind hier die Einschraenkungen die das mit sich bringt (gleiche Architektur, kein austauschbarer Kernel im Gast). Es ging dann diffus ueber zum Zeitproblem in VMs, wo ich ziemlich planlos rumgestochert habe, war aber wohl nicht schlimm. Die letzten Minuten gings dann noch um die Eigenschaften der JVM die sie besonders geeignet fuer JIT-Compiler macht, also keine Flagsberechnung bei Arithmetikbefehlen, keine MMU, typsichere Pointer, keine Interrupts, etc.
Die Pruefung lief insgesamt genauso strange gedankenstromartig ab wie dieses Protokoll sich liest, also nicht wundern.