Was ist ein Programmiercompiler?

Ein Compiler ist ein Softwareprogramm, das von einem menschlichen Programmierer geschriebenen Computerprogrammiercode in Binärcode (Maschinencode) konvertiert, der von einer bestimmten CPU verstanden und ausgeführt werden kann. Der Akt der Transformation Quellcode in Maschinencode heißt "Kompilierung". Wenn der gesamte Code auf einmal transformiert wird, bevor er die Plattformen erreicht, auf denen er ausgeführt wird, wird der Prozess als AOT-Kompilierung (Pre-of-Time) bezeichnet.

Welche Programmiersprachen verwenden einen AOT-Compiler?

Viele bekannte Programmiersprachen erfordern einen Compiler, einschließlich:

  • Fortran
  • Pascal
  • Assemblersprache
  • C.
  • C ++
  • Schnell

Vor Java und C # wurden alle Computerprogramme entweder kompiliert oder interpretiert.

Was ist mit interpretiertem Code?

Interpretierter Code führt Anweisungen in einem Programm aus, ohne sie in Maschinensprache zu kompilieren. Der interpretierte Code analysiert den Quellcode direkt, ist mit einer virtuellen Maschine gekoppelt, die den Code für die Maschine zum Zeitpunkt der Ausführung übersetzt, oder nutzt vorkompilierten Code.

instagram viewer
Javascript wird normalerweise interpretiert.

Kompilierter Code wird schneller ausgeführt als interpretierter Code, da er zum Zeitpunkt der Aktion keine Arbeit ausführen muss. Die Arbeit ist bereits erledigt.

Welche Programmiersprachen verwenden einen JIT-Compiler?

Java und C # verwenden Just-in-Time-Compiler. Just-in-Time-Compiler sind eine Kombination aus AOT-Compilern und Interpreten. Nachdem ein Java-Programm geschrieben wurde, wandelt der JIT-Compiler den Code in Bytecode und nicht in Code um, der Anweisungen für den Prozessor einer bestimmten Hardwareplattform enthält. Der Bytecode ist plattformunabhängig und kann auf jeder Plattform gesendet und ausgeführt werden, die Java unterstützt. In gewisser Weise wird das Programm in einem zweistufigen Prozess kompiliert.

In ähnlicher Weise verwendet C # einen JIT-Compiler, der Teil der Common Language Runtime ist und die Ausführung aller .NET-Anwendungen verwaltet. Jede Zielplattform verfügt über einen JIT-Compiler. Solange die Plattform die Konvertierung der Zwischenbytecode-Sprache verstehen kann, wird das Programm ausgeführt.

Vor- und Nachteile der AOT- und JIT-Kompilierung

Die AOT-Kompilierung (Ahead-of-Time) bietet eine schnellere Startzeit, insbesondere wenn ein Großteil des Codes beim Start ausgeführt wird. Es erfordert jedoch mehr Speicher und mehr Speicherplatz. Die JOT-Kompilierung muss auf die am wenigsten fähige aller möglichen Ausführungsplattformen abzielen.

Durch die Just-in-Time-Kompilierung (JIT) wird die Zielplattform während der Ausführung profiliert und im laufenden Betrieb neu kompiliert, um eine verbesserte Leistung zu erzielen. JIT generiert verbesserten Code, da es auf die aktuelle Plattform abzielt, obwohl die Ausführung normalerweise länger dauert als von AOT kompilierter Code.