Java Card 3.0 - Split VM, JDK 6
By anki on Apr 15, 2008
Java ME developers are aware of split VM architecture. In simple terms, Data Flow Analysis happens off the device. This is done by preverifier tool. Then, the byte code verification happens on the device using the information generated by preverifier tool. This information is stored in an attribute "StackMap" for each method's "Code".
Java Card 3.0 is adapting the same style. But with a different approach.
Since JDK6, the Java compiler generates preverified class files. There is a slight difference compared to Java ME style preverification. The first difference is the Attribute name itself. Attribute name in JDK6 generated class files is "StackMapTable". And the second difference is, "StackMapTable" is in compressed format compare to "StackMap". I am not going into details. You can check latest Class file format (JSR-202) for more details.
Java Card 3.0 is trying to leverage on JDK 6, so that the learning curve will be not so bumpy/steep/perpendicular :)