Accession Number:



Java-through-C Compilation: An Enabling Technology for Java in Embedded Systems

Descriptive Note:

Corporate Author:


Report Date:


Pagination or Media Count:



The Java programming language is achieving greater acceptance in high-end embedded systems such as cell phones and PDAs. However, current embedded implementations of Java impose tight constraints on functionality, while requiring significant storage space. In addition, they require that a JVM be ported to each such platform. We demonstrate the first Java-to-C compilation strategy that is suitable for a wide range of embedded systems, thereby enabling broad use of Java on embedded platforms. This strategy removes many of the constraints on functionality and reduces code size without sacrificing performance. The compilation framework described is easily retargetable, and is also applicable to barebones embedded systems with no operating system or JVM. On an average, we found the size of the generated executables to be over 25 times smaller than those generated by a cutting edge Java-to-native-code compiler, while providing performance comparable to the best of various Java implementation strategies. need not be modified to run them on embedded platforms. Standard Java classes and utilities can be supported to a high degree. 2. Related Work Various alternative Java implementations have been explored recently. TurboJ 4 speeds up execution by compiling bytecode to native code ahead of time, but using a JVM for some functions. Harissa 5 generates C code from Java, but uses a JVM for some functionality. The JVM allows Java to be fully supported, at the cost of increased code size. Jove 22 is a native compiler targeted at large serverworkstation programs. It creates executables that are aggressively optimized for speed, not for code size, and thus generates relatively large executables 23. gcj 8 provides a sophisticated and standardized method for compiling Java source code or bytecode into native executable form. It provides a complete runtime environment for Java, and is

Subject Categories:

  • Computer Programming and Software

Distribution Statement: