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

Dies ist eine alte Version des Dokuments!


Optimierungen in Übersetzern

  • Pruefer: Prof. Philippsen
  • Beisitzer: Stefan Kempf
  • Note 1.7
  • ~ 30 min.
  • Codebeispiel / Graphen + Bleistift

Waehrend der Pruefung herrscht ansich eine angenehme, lockere Atmosphaere, allerdings wird durchaus solange nachgebohrt, bis die richtige Antwort kommt. Insgesamt sollte man auf jedenfall gut vorbereitet sein.

Man sollte eher Wert darauf legen praezise zu antworten und weniger abzuschweifen, da sonst andere Themen, die der Pruefer wissen will, nicht mehr gefragt werden koennen (Leistung = Arbeit / Zeit).

Insgesamt sollte man sich auch mit ausgefalleneren / anderen Beispielen als aus der Uebung / der Vorlesung beschaeftigen, damit man in der Pruefung dann nicht allzu baff ist, wenn die Situation dann ploetzlich ganz anders ist.

Auf die Pruefung habe ich mich ca. 1 Woche mit durcharbeiten des Skripts vorbereitet. Dabei haette ich mehr Fokus auf verstehen der Beispiele / Schritte in den Folien legen sollen. Die Menge verschiedenen Verfahren ist sonst ohne genaues Verstehen leicht ueberfordernd.

Pruefung:

Es wurde ein Programmausschnitt vorgelegt mit zugehoerigem KFG. Der Programmausschnitt war dabei dabei C Code. Ich habe bei der Vorbereitung eig. nur mit Zwischencode gearbeitet, weshalb hier etwas Schwierigkeiten entstanden sind. Fragen / Aufgaben:

  • Wie kommt man auf den KFG → Grund Block Analyse
  • Was ist jetzt aber, wenn ich in C Code zu jeder Zeile ein neues Label einfuehre? → Gemeint war hier, dass beim uebersetzen unangesprungene Label eliminiert werden
  • Welche Verfahren kann man auf dem KFG anwaenden? → Dominanz, ImmDomm, …
  • Wozu wird die Dominanz / ImmDoms bestimmt? → Schleifen, Phi-Fkt, …
  • Was sind Dominanzgrenzen, was bedeutet das? → Neuer eingehender Kontrollfluss …
  • Wie bestimmt man Dominanzgrenzen? → DGup / DGlocal Algorithmus erklaeren
  • Wie werden Schleifen gefunden? → Natuerliche Schleife bei Rueckkante, Dominanz, …
  • Was sind unnatuerliche Schleifen / Wie erkennt man das ein Programm solche hat? → Reduzierbarkeit …
  • Phi-Fkt: Warum… → SSA Code, Vorteile SSA erlaeutert
  • Mach mal SSA Code → Gemacht
  • Schleifen erkennen → Code hat eine unnatuerliche Schleife enthalten, Algo zum erkennen solcher Schleifen erkannt
  • Aus SSA erkennbar, dass unnatuerliche Schleife wegfaellt, KFG anpassen
  • Was kann man jetzt mit der Schleife machen? → Induktionsvariablen erkennen
  • Such mal die Induktionsvariablen …
  • Gibt es abhaengige Induktionsvariablen? → Hier etwas tricky, die abhaengigen Ind. Variablen verstecken sich in multidimensionalem Arrayzugriff
  • Was kann man jetzt mit den Induktionsvariablen machen? → Herausziehen, dazu die while-Schleife im KFG in eine do-while Schleife umbauen
  • Was kann man noch machen? → Parallelisieren, Richtungsvektoren aufstellen usw.
  • Stell mal den Richtungsvektor auf → aufstellen
  • Kann man das ganze jetzt parallelsieren? → …