The Cygnus GNUPro compiler for the Java language
The interpreted nature of Java has a drawback that embedded
system developers can barely afford: application execution time is many
times slower than comparable compiled application developed in C or C++.
Using a just-in-time (JIT) compiler improves the situation, at the cost
of spending a great amount of start-up time performing the translation.
Moreover the use of a JIT can increase memory consumption and isn't able
to optimize aggressively. The significant memory requirements of a JIT
makes them poorly suited for use in embedded systems. Cygnus has decided
to solve these problems by writing a Java language front end for the existing
GNU gcc compiler. This front end, called jc1, translates Java
byte code (and soon Java source code) into the gcc intermediate node format
called tree nodes. Such trees are later processed by the middle and back
ends of gcc into machine code, taking benefit of the extensive gcc optimization
schemes and its broad CPU support. jc1 also provides the back
end with information on how to generate the compiled class reflective data
used by the runtime system during execution of the compiled code. For more
information, consult http://www.cygnus.com/product/javalang.
|