The smallest complete Java™ virtual machine implementations in use today are based on the CLDC standard and are deployed in mobile phones and PDAs. These implementations require several tens of kilobytes. Smaller Java-like implementations also exist, but these involve compromises in Java semantics. This paper describes a JVM™ architecture designed for very small devices. It supports all the CLDC Java platform semantics, including exact garbage collection, dynamic class loading, and verification. For portability and ease of debugging, the entire system is written in the Java language, with key components automatically translated into C and compiled for the target device. The resulting system will run on the next generation of smart cards, and has performance comparable to the reference CLDC implementation available from Sun™.
[1]
Frank Tip,et al.
Practical extraction techniques for Java
,
2002,
TOPL.
[2]
Derek Rayside,et al.
Compact Java binaries for embedded systems
,
1999,
CASCON.
[3]
William Pugh,et al.
Compressing Java class files
,
1999,
PLDI '99.
[4]
Stephen J. Fink,et al.
The Jalapeño virtual machine
,
2000,
IBM Syst. J..
[5]
Ulrik Pagh Schultz,et al.
Java bytecode compression for low-end embedded systems
,
2000,
TOPL.
[6]
Antero Taivalsaari,et al.
The Spotless System: Implementing a Java System for the Palm Connected Organizer
,
1999
.