Some ideas that I've written about:
Links:
JC Virtual
Machine
A really impressive project developed by Archie Cobbs.
Translates Java to C while aiming (and succeeding) to achieve
full JVM compatibility. It is very well thought and
documented. Utilizes Soot to perform global
optimizations and has a lot of potential for high
performance, currently more so than GCJ in my opinion.
(One of these days I am hoping to find time to work on a Win32 port, unless some good soul does it before me.)
2005-2-4: I have received a question asking me why I think JCVM has more performance potential than GCJ, so I think I should clarify that. The simple explanation is that currently GCJ doesn't implement a lot of Java specific optimizations and relies exclusively on GCC's back-end optimization engine, which still is not adequate for Java. Java, being a highly dynamic language, requires extensive interprocedural and whole-program optimizations, as well as Java-specific whole program analysis, in order to achieve reasonable performance. GCC is currently not very well suited for that, although there is work being done. Sun's HotSpot sometimes outperform's GCJ with a margin of 2 to 1, which can be quite surprising considering that GCC performs very respectably on C code, but basically confirms my opinion.
JCVM, on the other hand, already uses the Soot framework, which is geared specifically towards Java whole program optimization. This allows it even now to perform inter-module inlining - something that GCJ cannot do. JCVM ultimately generates C files which are compiled with GCC, so it has the advantage of combining GCC's local optimization engine with Soot's global optimizations.