Sie befinden sich hier: Termine » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 2 » Ausgewählte Kapitel aus dem Übersetzerbau   (Übersicht)

Ausgewählte Kapitel aus dem Übersetzerbau

Beisitzer: Kamp, Kreutzer

Zeit: 30min

Stimmung & Ablauf

Angenehme Atmosphäre, Einstieg über das Blockpraktikum hilft gut, zweiter Teil wie gewohnt über den restlichen Stoff.

Teil 1: Blockpraktikum

B: Was haben wir im Praktikum gemacht?

B: Welche Teile haben wir dabei im Vergleich zu einem „echten“ JIT weg gelassen?

  • Code-Cache-Manager
  • Laufzeitmessungen

JIT 0

B: Wie funktioniert ein Interpreter?

  • switch-case

B: Wie führt man dann einzelne Instruktionen aus?

B: Was ist schlecht daran?

  • Viele Sprünge

B: Wie gehts besser?

  • Indirektes Durchfädeln

B: Was macht man bei indirektem Durchfädeln?

B: Dann gibt es doch auch direktes Durchfädeln?

JIT 1

B: Was haben wir hier gemacht?

  • Code vorübersetzt

B: Auf was muss man aufpassen?

  • Interpreter → Nativer Code
  • Nativer Code → Interpreter
  • ⇒ Trampolinfunktion

B: Ist die Trampolinfunktion weglassbar, wenn alles übersetzt ist?

  • Bei uns möglich, da Code-Cache nie gelöscht wird
  • Bei anderen JITs allerdings nicht (erneute Übersetzung)

JIT 2

B: Was haben wir da gemacht?

  • Registervergabe

B: Mittels Graphfärben? Wieso nicht?

  • Zu aufwändig und lohnt meistens nicht

B: Kosarajus Algorithmus.

B: Auf was machen wir den?

  • KFG

B: Linear Scan

  • Keine Löcher
  • Erstes Lesen bis letztes Lesen

Teil 2: Restlicher Stoff

Exceptions

B: Wie würde man mit Exceptions umgehen?

B: Wie funktioniert Stack Cutting?

B: Vor- und Nachteile von Stack Cutting

Garbage Collection

B: Welche einfachen Speicherbereiniger gibt es?

  • Verwendungszähler
  • mark and sweep
  • Kopierend

B: Woher weiß man, welche Objekte man entfernen kann?

  • Zähler / (keine) Markierung

B: Wie sieht es bei Speicherbereiniger mit Verwendungszähler mit zyklischen Müll aus?

B: Wann macht man Speicherbereinigung?

LLVM

B: Was ist das?

B: Was sind die Vorteile?