The present invention, generally speaking, provides a machine-independent
solution suitable for high-performance systems development. In a preferred
embodiment, the solution is Java-based, providing machine independence.
The requirements of high-performance systems are satisfied by providing a
Java optimizing, ahead-of-time compiler. Optimized ahead-of-time
compilation produces code having comparable size and speed as code written
in C/C++. At the same time, compatibility with the Java world is afforded,
allowing for the mixing and matching of code according to individual
system requirements. If the system has a network connection, for example,
then the system software may include, in addition to the pre-compiled Java
code, a Java Virtual Machine, allowing Java bytecode to be downloaded and
run. A coherent model allows for pre-compiled Java code, VM interpreted
bytecode and JIT compiled Java code, as well as C/C++code, to
interoperate. Preferably, the optimizing ahead-of-time Java compiler is
capable of compiling either Java source code or Java bytecode. In this
manner, code distributed only in bytecode form may be pre-compiled. A Java
stack slot compilation scheme achieves code optimization and overcomes
difficulties peculiar to ahead-of-time compilation of Java. In addition, a
static layout of Java metadata is created by the compiler, obviating the
need to create such a layout at runtime.