The FLINT Project

Research

People

Publications

Software

Support

Links

Internal

Supporting Binary Compatibility with Static Compilation

Last modified: Mon Aug 5 15:40:19 2002 GMT.

Authors

Dachuan Yu
Zhong Shao
Valery Trifonov

Abstract

There is an ongoing debate in the Java community on whether statically compiled implementations can meet the Java specification on dynamic features such as binary compatibility. Static compilation is sometimes desirable because it provides better code optimization, smaller memory footprint, more robustness, and better intellectual property protection. Unfortunately, none of the existing static Java compilers support binary compatibility, because it incurs unacceptable performance overhead. In this paper, we propose a simple yet effective solution which handles all of the binary-compatibility cases specified by the Java Language Specification. Our experimental results using an implementation in the GNU Java compiler shows that the performance penalty is on average less than 2%. Besides solving the problem for static compilers, it is also possible to use this technique in JIT compilers to achieve an optimal balance point between static and dynamic compilation.

Published

In USENIX 2nd Java[TM] Virtual Machine Research and Technology Symposium (JVM'02), San Francisco, California, August 2002. Winner of the Best Student Paper Award. ©2002 USENIX.

Copyright © 1996-2024 The FLINT Group <flint at cs dot yale dot edu>
Yale University Department of Computer Science
Validate this page
colophon