Dr. Dobb's Journal October 1998
The Cygnus GNUPro Compiler for Java
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, but 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 JITs make 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 bytecode (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 run-time system during execution of the compiled code. For more information, see http://www.cygnus.com/product/javalang/.
-- A.P.
Copyright © 1998, Dr. Dobb's Journal