6.2 Übersetzung des Quellcodes
6.2.1 Übersetzungsprogramme
Grundsätzlich gibt es zwei alternative Ansätze den in einer höheren Programmiersprache verfassten Quellcode in eine Maschinensprache zu übersetzen. Als Übersetzungsprogramm kommt dabei im ersten Fall ein Compiler und im zweiten Fall ein Interpreter zum Einsatz.
Im Gegensatz zu einem Compiler erzeugt ein Interpreter also keinen speicherbaren Maschinencode. Der Vorteil eines Compilers liegt daher darin, dass das Programm schneller ausgeführt wird, da es nicht mehr übersetzt werden muss.
Der Interpreter bietet wiederum den Vorteil, ein Programm Schritt für Schritt übersetzen und ausführen zu können. Auf diese Art und Weise lässt sich ein Programm testen und auf Fehler überprüfen.
6.2.2 Übersetzung von Java-Quellcode
Java geht nun einen Mittelweg. Ein Compiler übersetzt den Java-Quellcode zunächst in einen maschinenunabhängigen Bytecode. Die Java Virtual Machine (JVM) übersetzt als Interpreter den Bytecode zur Laufzeit in die für den jeweiligen Prozessortyp verständliche Maschinensprache und führt ihn aus. Auf einem Rechner, auf dem ein in Java geschriebenes Programm ausgeführt werden soll, muss daher immer eine für den jeweiligen Prozessortyp zugeschnittene Java Virtual Machine installiert sein.
Java-Programme können damit auf verschiedenen Computersystemen mit Unterschieden in Architektur, Prozessor, Compiler, Betriebssystem usw. ausgeführt werden, sofern dort die entsprechende Java Virtual Machine installiert ist. Diese so genannte Plattformunabhängigkeit ist ein großer Vorteil der Programmiersprache Java.