Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 2 » Uebersetzerbau 3   (Übersicht)

Uebersetzerbau 3

Prüfer: Prof. Dr. Michael Philippsen, Dipl.-Inf. Stefan Kempf
Syntax: Frage? (Meine) Antwort
Anmerkung: Hab viel selbst erzaehlt da Prof. Dr. Philippsen das so gerne sieht(?)

Gedaechtnis-Protokoll

Fragen kamen nur von Stefan. Er hat auch nur Fragen zum Praktikum und den Teilen der Vorlesung gestellt die er selbst gehalten hat.

  • Byte-Code:
int foo(int a){
    add tmp, a, 1
    return tmp;
}

int main(){
    ... // hier standen Anweisungen
    push y
    call z, foo()
    ... // noch mehr sinnlose Anweisungen
}
  • Was macht ein Interpreter damit?
  • Wie sieht der Aufruf von foo() aus? Interpreter ruft sich selbst rekursive Aufruft oder macht direkte Sprung im Byte-Code.
  • Was macht der JIT?
    • Ohne Optimierung Das ganz normale 1:1 Codeerzeugen erklaert.
    • JIT2 = Registervergabe mittels Linear Scan
      • Algorithmus an einfachem Beispiel (nur gegebenen Lebensspannen) auf Papier vorfuehren. Davor hab ich selbst noch erklaert wie man die Lebenspannen korrekt berechnet, etc.
    • Dann JIT3: foo() in main inlininen
  • Wann sollte man JITen? Laufzeitmessung: Zaehler vs Stichproben
  • Zwischen drinnen kam noch eine Frage zu was passiert wenn man aus Interpretiertem Code gejiteten Code aufrufen will oder umgekehrt. Trampolin Funktion. System vs Interpreter Stack. On-Stack-Replacement (Die genaue chronologische Einordnung in den obigen Block ist mir leider entfallen.)
  • Exceptions
    • Warum?
    • Wie? dynamisches Registrieren vs statische Tabellen (kurz umrissen)
    • Was ist zur Laufzeit besser? statische Tabellen
  • Linker und Loader:
    • Dynamic shared Library
      • Wie muss der Code beschaffen sein? PIC
      • Was passiert wenn man foo() der Library aufruft? PLT: Erst steht dort die Adresse des Stubs der dann die richtige Adresse berechnet und in die PLT eintraegt (und dann noch foo() aufruft).
      • Wie koennte man fuer Daten auch Lazy-relocation implementieren? ?

Alles in allem lockerer Pruefung. Gerne wieder.