Monday, January 23, 2006

JVM extension

It occurs to me that the JVM specification might be able to add registers while still maintaining backward compatibility, i.e., the new JVM can still run old class files. Older programs simply need not use the registers. The main problem might a completely full opcode space (abuse opcode 186?).

Of course, since a class file has version numbers in it, one could also simply scrap everything and define a new JVM, ( What would it be like, from lessons learned from the current JVMs?

And on a slightly unrelated note, what JITs use escape analysis to allocate objects on the stack instead of the heap? Are stack allocation and registers the main impediments to Java runtime performance?

(Hmm, Java explicitly forbids self-modifying code.)

No comments :