The user interface to the JVM is through the class file. This class file has a strict format. The strictness of the format is required in part so that the JVM specification remains well defined. However, the strict format is also in place for security reasons. ``Security'' in this context refers to the ability for the JVM class file loader to ``verify'' the class file. Verification allows the class loader to make some assurances to the system running the JVM that the given class will not attempt to over-step its bounds. Details about security and the verification process are discussed in Section 1.1.4.
Each JVM class file contains:
The JVM class file is finely tuned to the Java language. However, most object oriented languages (and even most functional and imperative languages) can be modeled to fit into this relatively simple object oriented model. Thus, the close relationship of Java and the JVM does not pose a particular impediment to porting non-Java languages to the JVM.
It should be duly noted, however, that strong typing is enforced for the methods and fields of a class file. This can cause problems when porting more weakly typed languages to the JVM. Section 1.1.4 discusses this typing enforcement. Section 1.3 discusses how this issue impacts porting non-Java languages to the JVM.
Copyright © 2000, 2001 Bradley M. Kuhn.
Verbatim copying and distribution of this entire thesis is permitted in any medium, provided this notice is preserved.