A Tree-Based Alternative to Java Byte-Codes
Rent the article at a discountRent now
* Final gross prices may vary according to local VAT.Get Access
Despite the apparent success of the Java Virtual Machine, its lackluster performance makes it ill-suited for many speed-critical applications. Although the latest just-in-time compilers and dedicated Java processors try to remedy this situation, optimized code compiled directly from a C program source is still considerably faster than software transported via Java byte-codes. This is true even if the Java byte-codes are subsequently further translated into native code. In this paper, we claim that these performance penalties are not a necessary consequence of machine-independence, but related to Java's particular intermediate representation and runtime architecture. We have constructed a prototype and are further developing a software transportability scheme founded on a tree-based alternative to Java byte-codes. This tree-based intermediate representation is not only twice as compact as Java byte-codes, but also contains more high-level information, some of which is critical for advanced code optimizations. Our architecture not only provides on-the-fly code generation from this intermediate representation, but also continuous re-optimization of the existing code-base by a low-priority background process. The re-optimization process is guided by up-to-the-minute profiling data, leading to superior runtime performance.
- T. Lindholm, F. Yellin, B. Joy, and K. Walrath, The Java Virtual Machine Specification, Addison-Wesley (1996).
- Sun Microsystems, The Java Language: An Overview, http://java.sun.com/doc/Overviews/java/java-overview-1.html (1995).
- D. W. Wall, Global Register Allocation at Link Time, Proc. '86 Symp. Compiler Construction, pp. 264–275 (July 1986).
- Franz, M., Kistler, T. (1997) Slim Binaries. Comm. ACM. Department of Information and Computer Science, University of California, Irvine, pp. 87-94
- Franz, M. (1994) Code-Generation On-the-Fly: A Key to Portable Software, Doctoral Dissertation. Verlag der Fachvereine, Zürich
- Welch, T. A. (1984) A Technique for High-Performance Data Compression. IEEE Computer 17: pp. 8-19
- Wolf, M., Lam, M. (1991) A Data Locality Optimization Algorithm. Proc. '91 Conf. Progr. Lang. Design and Implementation. Published as SIGPLAN Notices 26: pp. 30-44
- J. Cocke and J. Schwartz, Programming Languages and Their Compilers: Preliminary Notes, Courant Institute of Mathematical Sciences, New York University (April 1970).
- Brandis, M. M. (1995) Optimizing Compilers for Structured Programming Languages, Doctoral Dissertation. Eidgenö ssische Technische Hochschule, Zürich
- U. Hölzle, Adaptive Optimization for SELF: Reconciling High Performance with Exploratory Programming, Ph.D. Dissertation, Department of Computer Science, Stanford University (1994).
- T. Kistler, Dynamic Runtime Optimization, Proc. Joint Modular Lang. Conf. (JMLC'97), pp. 53–66. Published as Springer Lecture Notes in Computer Science No. 1204 (March 1997). Also published as Technical Report No. 9–54, Department of Information and Computer Science, University of California, Irvine (November 1996).
- Anderson, J., Berc, L., Dean, J., Ghemawat, S., Henzinger, M., Leung, S.-T., Sites, R., Vandevoorde, M., Waldspurger, C., Weihl, W. (1997) Continuous Profiling: Where Have All the Cycles Gone?. Proc. 16th ACM Symp. Oper. Syst. Principles. St. Malo, France
- Ball, T., Larus, J. R. (1994) Optimally Profiling and Tracing Programs. ACM Trans. Progr. Lang. Syst. 16: pp. 1319-1360
- United Kingdom Defence Resesearch Agency, TDF Specification, Issue 2.1. (June 1993).
- Open Software Foundation, OSF Architecture-Neutral Distribution Format Rationale(1991).
- G. Hansen, Adaptive Systems for the Dynamic Run-Time Optimization of Programs, Ph.D. Dissertation, Department of Computer Science, Carnegie-Mellon University (1974).
- Wall, D. (1992) Systems for Late Code Modification. Digital Equipment Corporation. Western Research Laboratory, Palo Alto California
- Hookway, R., Herdeg, M. (1997) DIGITAL FX!32: Combining Emulation and Binary Translation. Digital Tech. J. 9: pp. 3–12
- X. Zhang, Z. Wang, N. Gloy, J. Chen, and M. Smith, System Support for Automatic Profiling and Optimization, Proc. 16th ACM Symp. Oper. Syst. Principles(September 1997).
- Motorola, Inc. PowerPC 601: RISC Microprocessor User's Manual(1993).
- Wirth, N. (1988) The Programming Language Oberon. Software-Practice and Experience 18: pp. 67-690
- A Tree-Based Alternative to Java Byte-Codes
International Journal of Parallel Programming
Volume 27, Issue 1 , pp 21-33
- Cover Date
- Print ISSN
- Online ISSN
- Kluwer Academic Publishers-Plenum Publishers
- Additional Links
- INTERMEDIATE CODE REPRESENTATIONS
- JUST-IN-TIME COMPILATION
- DYNAMIC CODE REOPTIMIZATION
- Industry Sectors