A Retargetable Optimizing Java-to-C Compiler for Embedded Systems

Loading...
Thumbnail Image

Files

thesisbook.pdf (360.17 KB)
No. of downloads: 778
umi-umd-1017.pdf (360.17 KB)
No. of downloads: 488

Publication or External Link

Date

2004-03-29

Citation

DRUM DOI

Abstract

The Java programming language is achieving greater acceptance in high-end embedded systems such as cellphones and PDAs. However, low-end embedded platforms, such as DSPs or microcontrollers, often have no more than a C compiler, and this prevents Java applications from being run on such systems.Applications must either be re-written in C, or a Java Virtual Machine must be ported to each such system.

This paper discusses a compiler that converts portable Java bytecode to C code, allowing applications written in Java to run on embedded systems which may lack a Java Virtual Machine. This is also applicable to barebones embedded systems running without an operating system. We briefly describe code generation strategies, run-time data structures and optimization algorithms used to generate efficient C code. The code size and execution time of the C code were compared with interpreted Java, just-in-time compiled Java, and executables generated directly from Java.

On an average, we found the size of the generated stand-alone executable to be over 25 times smaller than that generated by a cutting-edge Java-to-native-code compiler, while providing performance comparable to the best of various Java implementation strategies.

Notes

Rights