Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 2 » Übersetzerbau 2 2017-08-09 (Übersicht)
no way to compare when less than two revisions
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
— | pruefungen:hauptstudium:ls2:ueb2-2017-08-09 [09.08.2017 09:59] (aktuell) – angelegt Volschaf | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Übersetzerbau 2 2017-08-09 ====== | ||
+ | **Fach:** Optimierungen in Übersetzern | ||
+ | **Prüfer: | ||
+ | |||
+ | **Beisitzer: | ||
+ | |||
+ | ===== Fragen ===== | ||
+ | |||
+ | - Welche wichtige Datenstruktur haben wir denn fuer Optimierungen verwendet? ~> KFG | ||
+ | |||
+ | - Was ist ein KFG, Basisbloecke, | ||
+ | |||
+ | - Was kann man damit machen ~> Dominanz bestimmen | ||
+ | |||
+ | - Was ist Dominanz? Wie kann man sie bestimmen? ~> iterativer Fixpunktalgorithmus, | ||
+ | |||
+ | - Wie funktioniert iterativer Fixpunktalgorithmus? | ||
+ | |||
+ | - Wofuer wird Dominanz benoetigt? ~> Kontrollflussabhaengigkeit | ||
+ | |||
+ | - Was ist Dominanzgrenze, | ||
+ | |||
+ | |||
+ | < | ||
+ | class C { | ||
+ | //... | ||
+ | } | ||
+ | |||
+ | void foo(C p) { | ||
+ | C c = new C(); | ||
+ | nullptrcheck(c); | ||
+ | nullptrcheck(p); | ||
+ | c.x = p.x | ||
+ | // ... | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | - Wie kann man unnoetige Nullptrchecks erkennen? ~> Datenflussanalyse | ||
+ | |||
+ | - Bitvektorbelegung, | ||
+ | |||
+ | |||
+ | - Was hatten wir noch an Werkzeug fuer Datenflussanalyse? | ||
+ | |||
+ | - Was ist SSA? | ||
+ | |||
+ | - Wie in SSA transformieren? | ||
+ | |||
+ | - Click angewandt. | ||
+ | |||
+ | - Wie aus SSA zurueck? ~> CSSA waere nett, Transformationen machen aber iA | ||
+ | Lebensspannen kaputt, also Temporaervariablen einfuehren, drei Zuweisungen. | ||
+ | |||
+ | |||
+ | - Was ist schleifeninvarianter Code? | ||
+ | |||
+ | - Ist bei diesem Codestueck die Zuweisung invariant? ~> abhaenging von p ~> Aliasanalyse | ||
+ | |||
+ | - Welche benutzen wir? ~> interprozedural, | ||
+ | |||
+ | - Steensgard angewandt. | ||
+ | |||
+ | |||
+ | - Was sind Induktionsvariablen? | ||
+ | |||
+ | - Transformationsschablone auf gegebenes Codestueck angewandt. | ||
+ | |||
+ | - Schleifengrenze angepasst; illegal bei Ueberlauf. |