Ahead-of-time-Compiler

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Ein Ahead-of-time-Compiler (AOT-Compiler) ist ein Compiler, der im Gegensatz zu Just-in-time-Compilern (JIT-Compiler) Programmcode (lange) vor der Ausführung (und unabhängig von ihr) in native Maschinensprache übersetzt. Dies hat den Vorteil, dass dieser Code zur Laufzeit wesentlich schneller ausgeführt wird (d. h. die Initialisierungszeit ist kürzer) als auf einem JIT-Compiler, da die Übersetzung bereits durchgeführt wurde. Außerdem sind zeitlich aufwendigere Optimierungen des Maschinencode möglich.

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 herkömmliche Compiler, wie sie schon von C eingesetzt wurden. Aber auch für Sprachen, die normalerweise mit JIT-Compilern arbeiten (z. B. Java), können AOT-Compiler zur Verfügung gestellt werden. In diesem Fall kann der Compiler anstelle der Quelltexte den Zwischencode (Bytecode) als Eingabe verwenden, was eine doppelte Pflege von Komponenten wie der Syntaxanalyse erspart.

Java[Bearbeiten | Quelltext bearbeiten]

Mit JEP 295 („JDK Enhancement Proposal“, Erweiterungsvorschläge für das Java Development Kit) wurde 2016 die optionale AOT-Kompilierung mit Java 9 zunächst für eingeschränkte Teile der Java-Plattform eingeführt. Allerdings ist dieses Feature immer noch als experimentell zu betrachten (Stand 2019).[1]

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Michael Krimgen: Ahead of Time Compilation (AoT). 18. Februar 2019, abgerufen am 7. Dezember 2019 (amerikanisches Englisch).