Sie befinden sich hier: Termine » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 2 » Uebersetzerbau 1   (Übersicht)

Pruefer: Michael Philippsen, Volkmar Sieh Themengebiete: Uebersetzerbau I, Virtuelle Maschinen

Oktober 2011

Uebersetzerbau 1

Boot-Strapping erklaeren

Lief etwas holprig, aber MP hat nachgeholfen.

Code-Zeile erklaeren

int c := 5 + true; Was passiert hier?

Lexer, Parser, Deklariertheitseigenschaft pruefen, Typpruefung. Den AST dazu gemalt (da war ich etwas verwirrt, da das ja so in dem Uebungscompiler nicht geht…).

Typ-Pruefung genauer erklaert (Bottom-Up, bzw. Prototypen). Prototyp kann schon bei dem „:=“ mitgegeben werden.

Graham-Glanville

MP hat mir ein Blatt vorgelegt mit einem Ausdrucksbaum und zur verfuegung stehende Maschinenbefehle. Ablauf von Graham-Glanville erklaert (Praefixnotation, Grammatik erstellen). Dann Praefixnotation auf Blatt geschrieben und Grammatik auch. (Da hats auch kurz gehapert, weil ich Befehle wie „mov c(Ri), Rj“ nicht gesehen hatte die dann in der Grammatik durch mov ind c Ri Rj ersetzt werden muessen usw.).

Virtuelle Maschinen

„Wir sind ja jetzt nicht weit vom Compilerbau entfernt.“ - .oO(Was? Ah, er meint JIT!)

JIT erklaert (Emulation ist langsam, deswegen ganze Bloecke kompilieren). Erklaert wie Block aussieht (wenn Sprung, neuen Block anfangen). Weitere optimieren durch Block-Verkettung (Probleme dabei). Dann noch erklaert, dass CISC stinkt und wir deswegen Mikro-Instruktionen haben. Danach wollte er noch wissen, warum die JVM so cool ist (kein selbstmodifiziender Code, cmp-Befehl einziger Befehl der Flags setzt, usw.).

Letzte Frage war dann noch, was ich Leuten empfehlen wuerde, die eine Menge Webserver vermieten wollen. Betriebssystem-basierte Virtualisierung kurz angerissen, dann war die Zeit auch vorbei.

Abschluss

VM lief gut und war super entspannt, die meiste Zeit drauf losgelabert.

CB1 war stellenweise holprig und MP musste ein wenig nachhelfen, von daher hatte ich da kein so gutes Gefuehl. Trotzdem eine 1,3.