A gcc-based Java implementation
Per Bothner · 2002
While a major factor in Java's success is its use of portable byte codes, we believe it cannot become a mainstream programming language without mainstream implementation techniques, specifically an optimizing ahead-of-time compiler. This allows much better optimization and much faster application start-up times than with JIT (just-in-time) translators. Cygnus Solutions are writing a Java front-end for the GNU compiler compiler (gcc) to translate Java byte codes into machine code. This uses proved and widely-used technology. The meta-data representing a class at run-time are laid out by the compiler in static data memory, saving more start-up time. We use the GNU linker to link compiled class files into standard shared or static libraries. For the run-time environment, we are enhancing the existing Kaffe-free Java virtual memory to make it full-strength and to support linking with pre-compiled class libraries. We are enhancing the GNU debugger (gdb) to understand Java, which will provide a familiar and multi-language debugging environment.