Ahead-of-time-Compiler

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Ein Ahead-of-time-Compiler (AOT-Compiler) ist ein Compiler, der im Gegensatz zu Just-in-time-Compilern (JIT-Compiler) Programmcode vor der Ausführung in native Maschinensprache übersetzt. Dies hat den Vorteil, dass dieser Code zur Laufzeit wesentlich schneller ausgeführt wird als auf einem JIT-Compiler, da die Übersetzung bereits durchgeführt wurde.

Der Nachteil an AOT-Compilern ist aber, dass dieser Code nicht mehr plattformunabhängig ist, wie es bei JIT-Compilern der Fall ist. AOT-Compiler sind die herkömmlichen Compiler wie sie schon von C eingesetzt wurden. Aber auch für Sprachen, die normalerweise mit JIT-Compilern arbeiten (z. B. Java), sind AOT-Compiler verfügbar.

Parrot[Bearbeiten]

Die Virtuelle Maschine von Perl 6, Parrot, bietet ähnliches: Bytecode kann mittels einer Auswahl von verschiedenen Verfahren direkt interpretiert werden oder er kann "Just in Time" kompiliert werden - jedoch erfolgt die Übersetzung nicht während der Ausführung des Bytecodes, sondern unmittelbar davor, d. h. eigentlich liegt hier eine AOT-Übersetzung vor, jedoch nur temporär im Speicher von Parrot.

Es ist jedoch auch vorgesehen, dass das AOT-Kompilat auch herkömmlich als Objektdatei gespeichert und zusammen mit den Parrot-Bibliotheken zu einem ausführbaren Programm gelinkt werden kann.