Was ist eine Zwischensprache?
Wenn in der Computerprogrammierung von einem Compiler lesbarer Quellcode analysiert wird, übersetzt der Compiler die Quellbefehle häufig in eine Folge von Anweisungen, die kein nativer Maschinencode sind, die jedoch vom Compiler oder einer anderen Software weiterverarbeitet, optimiert oder kompiliert werden können Werkzeuge. Die produzierten Dateien enthalten Anweisungen, die als Zwischensprache bezeichnet werden, da die vom Compiler verwendete Sprache weder für das größere Betriebssystem noch für die Sprache, die der Programmierer zum Schreiben des Codes verwendet, von Bedeutung ist ist eine Sprache, die als Brücke zwischen dem Schreiben und der Ausführung des Programms fungiert. Manchmal wird eine Zwischensprache verwendet, um es einem Compiler zu ermöglichen, sehr genaue Optimierungen vorzunehmen, damit das Programm effizienter ausgeführt werden kann. Sie kann jedoch auch verwendet werden, um Ausgabedateien zu erstellen, die zwischen verschiedenen inkompatiblen Systemen portierbar sind. Die tatsächliche Syntax der Sprache kann Maschinencode oder anderen Arten von nicht von Menschen lesbarem Bytecode ähneln, oder die Sprache kann nur eine vorhandene plattformübergreifende Computerprogrammiersprache sein.
Bei Verwendung für die Compileroptimierung nimmt ein Sprachcompiler jede Anweisung in eine Quellcodedatei und unterteilt den Befehl in die Zwischensprache. Eine einzelne, von Menschen lesbare Programmieranweisung kann in Dutzende von Anweisungen in Maschinensprache zerfallen, sodass die Zwischensprache eine Abstraktionsebene erstellt, mit der der Compiler Bereiche des Codes identifizieren kann, an die Optimierungen vorgenommen werden können, ohne den Code zuerst binden zu müssen Native Implementierungen oder Bibliotheken. Nach der Fertigstellung kann die Zwischencodedatei weiter kompiliert werden, um eine native Binärdatei zu erstellen, oder sie kann über ein anderes Programm, einen so genannten Interpreter, ausgeführt werden, der den Code ausführt, indem er nach Bedarf in native Anweisungen kompiliert wird.
Einige Sprachen, wie Java®, verwenden eine Zwischensprache, um kompilierte Dateien zu erstellen, die optimiert, aber auch auf andere Computersysteme portierbar sind. Diese Art von Code wird manchmal als Bytecode bezeichnet und ähnelt Maschinencode oder Assemblersprache. Bytecode wird plattformunabhängig in Dateien gespeichert, dh er kann auf jedes Computersystem oder Gerät übertragen werden, auf dem ein Interpreter ausgeführt werden kann. Sobald sich der Bytecode auf einem System befindet, kann er entweder als interpretiertes Programm ausgeführt oder für die native Ausführung auf dem Zielsystem kompiliert werden.
In einigen Fällen ist eine Computersprache so konzipiert, dass es einfach ist, auf ein bestimmtes Ziel hin zu programmieren, z. B. eine interaktive Webanwendung. Die Designer möchten jedoch keine benutzerdefinierten Compiler, Interpreter oder Plug-Ins für verschiedene Systeme einbinden. In diesen Fällen kann die Zwischensprache des Compilers eine vorhandene Sprache sein, die bereits plattformübergreifende Interpreter eingerichtet hat. Die resultierende Zwischensprache ist in diesem Fall für den Menschen lesbar. Ein Beispiel für eine Computerprogrammiersprache, die auch als Zwischensprache verwendet wird, ist JavaScript®, das den Vorteil hat, dass es ab 2011 in nahezu jedem Webbrowser auf jeder Plattform ausgeführt werden kann.