|
|
Bei Compilierung eines Quelltextes wird bei manchen Sprachen wie z.B. Java nicht direkt ein Maschinencode sondern ein Zwischenprodukt, der Bytecode erstellt.
Die so genannte Virtual Machine, im Falle von Java die Java VM, führt dann dieses Zwischenergebnis aus. Dabei ist zu beachten, das die Virtual Machine für jede Rechnerplattform, auf der das Compilat laufen soll, bereits vorliegen muss.
Java ist heute nur eines der prominentesten Beispiele für eine Bytecode-basierte Programmiersprache, andere Sprachen, die auf Bytecodes setzen, sind z.b. C# (Teil des .NET-Frameworks).
Das Konzept geht letztendlich auf die UCSD Pascal Umgebungen aus den späten 70er Jahren zurück: der erste Versuch, vollständig portable Computerprogramme auf Basis eines Bytecodes, damals p-Code genannt, zu ermöglichen. UCSD Pascal scheiterte jedoch weitgehend aufgrund der fehlenden Geschwindigkeit der damaligen Computersysteme - man konnte und wollte sich zu dieser Zeit Verlangsamung durch die zusätzliche Indirektion nicht leisten.
Viele interpretierte Sprachen verwenden auch intern Bytecode, das bedeutet, dass der Bytecode an sich unsichtbar für den Programmierer und Endbenutzer gehalten wird und automatisch als Zwischenschritt der Interpretation des Programmes erzeugt wird. Beispiele für aktuelle Sprachen, die zu diesem Trick greifen sind Perl und PHP. Auch dieses Verfahren ist sehr alt - bereits frühe BASIC Versionen der 80er Jahre verwendeten es, um die Ausführung ihrer Programme zu beschleunigen.
Geschichtliches und Hintergründe