@Osbios: Für den 2. Fall hast du wahrscheinlich die optimale Möglichkeit (ohne das man irgendwelche Verteilungen vom Eintreten der Bedingungen kennt) schon hingeschrieben!
![Wink ;)](https://forum.lowlevel.eu/Smileys/classic/wink.gif)
Du hast aber einen grundlegenden Unterschied schon mal zum Java Bytecode drin der schon mal ein potenzieller Grund für ein neues Format darstellt: Du willst alles für maximales Tempo drin. Der Java Bytecode sollte in erster Linie kompakt sein, damit die Programme schnell übers Internet übertragen werden können.
Allerdings ist deine Forderung nach einem halbwegs universellem, sicherem Bytecode ähnlich der Anforderungen des Bytecodes von .NET.
@SSJ7Gohan: Ja, das mit der Maschine mit unendlich vielen Register kam mir auch mal in den Sinn. Jedoch hatte ich mal gelesen das die stack-basierten Maschinen ein Stück mehr erforscht sind als die register-basierten. Jedoch verwendet GCC an einer Stelle in seinem Kompilierprozess so eine Register-Maschine! Jedoch brauchst du immer noch einen Algorithmus zur Register Allokation, ausser der Code braucht weniger Register als die CPU hat.
![Wink ;)](https://forum.lowlevel.eu/Smileys/classic/wink.gif)
Nun ja, vieles kann man zur Ladezeit machen. Programme die Daten über das Internet verschicken wollen werden aber sich aber darauf verlassen müssen das die Daten die sie zur Laufzeit erzeugen die richtige Reihenfolge haben.
Ich denke optimales Tempo kann man wahrscheinlich erreichen indem man Instruktionen die möglichst nahe an klassichen CPUs liegen anbietet, jedoch ohne die Sicherheit zu gefährden, sonst kann man sich ne VM auch praktisch sparen!