Die Verwendung von JIT-Compilern ist heute weit verbreitet. JIT-Compiler werden in virtuellen Maschinen zur Coderzeugung eingesetzt und unterscheiden sich von herkömmmlichen Compilern dadurch, dass Programmcode erst dann erzeugt wird, wenn dieser das erste Mal benutzt werden soll. In der Vorlesung wird der grundsätzliche Aufbau von JIT-Compilern und virtuellen Maschinen vorgestellt. In den Übungen werden die gelernten Techniken durch eine programmtechnische Umsetzung vertieft.
Inhaltlich werden folgende Themen angeschnitten
- Arbeitsweise von Java-Bytecode
- Aufbau und Arbeitseise einer virtuellen Maschine anhand der JikesRVM von IBM
- Verifikation von Bytecode
- Datenflussanalyse
- maschinenabhängige Optimierungen
- SSA-Form und darauf aufbauende Optimierungen
- Codeerzeugung
- alternative Zwischencoderepräsentationen
- Kodierung |