6 Ausgew¨ahlte Aspekte der ¨Ubersetzung
6.1 Zwischensprachen
Frage: Wodurch zeichnet sich SSA-Darstellung aus ?
Frage: Was hat davon, bei SSA bei jeder Variablenzuweisung, dieser auch einen neuen Index zuzuweisen?
Frage: Inwiefern ist eine Darstellung des Datenfluss in SSA-Form hilfreich bei Constant Propagation, Copy Propagation und Common Subexpression Eliminiation?
Frage: Warum zerlegt man ein Programm in Basic Blocks?
Frage: Warum nehmen wir bei 3-Adress-Code mit Basisblockstruktur an, dass es keine Labels gibt, die nicht angesprungen werden?
Frage: Was sind die Eigenschaften des 3-Address-Code?
Frage: Gegeben sei folgendes Programm:
i n t function1 ( i n t arg1 , i n t arg2 ){ i n t r e s = −32;
i f ( arg1 > arg2 ){ r e s = arg1−arg2 ; }e l s e{
r e s = arg1+arg2 ; }return r e s ;
}
¨Ubersetzen Sie das Programm in 3AC. Aus wievielen Basic Blocks besteht das Programm? Was sind Basic Blocks? Kennen Sie eine weitere Zwischensprache, die man an dieser Stelle nehmen k¨onnte?
6.2 Optimierung
Frage: Geben Sie einen ¨Uberblick ¨uber Optimierungsm¨oglichkeiten.
Frage: Bez ¨uglich welcher Kriterien kann man optimieren und welche Arten von Optimierungen gibt es?
Frage: Beschreiben Sie moegliche Zielsetzungen von Optimierungen im Compiler.
Frage: Wie k¨onnen Schleifen optimiert werden?
Frage: Name some examples for machine-dependant optimization techniques and state why it is machine-dependant!
Frage: Was ist Ziel und Vorgehen von Loop Unrolling?
Frage: Wie erzielt man bei Optimierungen den besten Effekt?
7
6.3 Data Flow Analysis
Frage: Was wird in der Datenflussanalyse untersucht?
Frage: Erl¨autern Sie das Prinzip, nach welchem Liveness Analyse betrieben werden kann und wie dies effizient umgesetzt wird.
Frage: Kann eine Variable gleichzeitig live und Dead-Code sein?
Frage: Beschreiben Sie das Vorgehen bei der Liveness Analysis.
Frage: W¨ahlen Sie f ¨ur die Berechnung vonout(B) eine geeignete Datenstruktur und erkl¨aren Sie, wieout(B) mit dieser m¨oglichst effizient berechnet werden kann.
Frage: F ¨ur welche Programme kann die Points-to-Analyse eingesetzt werden? Was macht die Points-to-Analyse?
6.4 Register Allocation
Frage: Wozu ben¨otigt man die Liveness Analysis?
Frage: Was versteht man unter Register Allokation und was sind die Ziele davon?
Frage: Wie kann man sich dem Problem der Registerallokation algorithmisch n¨ahern?
Frage: Was ist die Idee hinter Register Allocation, end welche Verfahren kennen Sie, um diese zu realsieren?
Frage: What is the goal of the Sethi-Ullmann Algorithm?
Frage: Beschreiben Sie das Ziel und das Vorgehen des Sethi-Ullmann-Algorithmus.
8
7 XML Processing
Frage: Wann k¨onnte es ungeschickt sein, XML einzusetzen?
Frage: Was ist ein wohlgeformtes und was ein valides XML-Dokument? Wie unterscheiden sie sich?
Frage: Beschreiben Sie XML Schemas und ihre Vorteile gegenueber DTD’s.
Frage: Name some advantages of XML Schema over DTDs!
Frage: Wieso sollte man SAX verwenden, wenn DOM zur Verf ¨ugung steht?
Frage: Wann benutzt man SAX bzw. DOM und wann eher nicht?
Frage: Vergleiche DOM mit SAX.
Frage: Vergleichen Sie die Verarbeitung von XML-Dokumenten mit SAX und DOM.
Frage: Sch¨atzen Sie: Ist XSLT turingm¨achtig?
9