Abstract
TurboJ is an off-line Java compiler, translating Java byte-codes to native code. TurboJ operates in conjunction with a Java Virtual Machine (JVM); among the supported JVMs are those on HPUX, Linux, and Wind River’s Tornado for Java (running under VxWorks). Interfacing with a standard JVM entails benefits not enjoyed by the alternate “standalone” approach; particularly important for embedded systems is the opportunity to reduce the memory footprint via mixed-mode execution.
In this paper, we discuss the characteristics of TurboJ as currently implemented, focusing on two aspects of TurboJ: its interactions with the JVM, and the optimizations it makes. We then briefly summarize TurboJ’s current status, compare it with some other Java off-line compilers, and outline future plans.
Preview
Unable to display preview. Download preview PDF.
References
Bothner, P. Compiling Java for embedded systems. http://www.cygnus.com/news/whitepapers/compiling.html.
Budimlic, Z., and Kennedy, K. Optimizing Java: Theory and practice. Concurrency: Practice and Experience (June 1997). http://www.npac.syr.edu/projects/javaforcse/cpande/rice/JavaPaper.ps.
Chambers, C., Dean, J., and Grove, D. Whole-program optimization of object-oriented languages. Tech. Rep. 96-06-02, University of Washington, June 1996. http://www.cs.washington.edu/research/projects/cecil/cecil/www/Papers/whole-program.html.
Cytron, R., Ferrante, J., Rosen, B. K., Wegman, M. N., and Zadeck, F. K. Efficiently computing static single assignment form and the control dependence graph. ACM Transactions on Programming Languages and Systems 13, 4 (Oct. 1991), 451–490. http://www.acm.org/pubs/articles/journals/toplas/1991-13-4/p451-cytron/p451-cytron.pdf.
Hummel, J., Azevedo, A., Kolson, D., and Nicolau, A. Annotating the Java bytecodes in support of optimization. In Workshop on Java for Science and Engineering Computation, PPoPP97 (June 1997). http://www.npac.syr.edu/users/gcf/03/javaforcse/acmspecissue/finalps/1_hummel.ps.
IBM high performance compiler for Java: An optimizing native code compiler for Java applications. http://www.alphaworks.ibm.com/graphics.nsf/system/graphics/HPCJ/$file/highpcj.html.
Lindhom, T., and Yellin, F. The Java Virtual Machine Specification. Addison-Wesley, 1996.
Muller, G., Moura, B., Bellard, F., and Consel, C. Harissa: a flexible and efficient Java environment mixing bytecode and compiled code. In COOTS97 (1997). available from http://www.irisa.fr/compose/harissa/harissa.html.
Proebsting, T. A., Townsend, G., Bridges, P., Hartman, J. H., Newsham, T., and Watterston, S. A. Toba: Java for applications. a way ahead of time (wat) compiler. available from http://www.cs.arizona.edu/sumatra/toba/.
Shaylor, N. JCC — a Java to C converter. http://www.geocities.com/CapeCanaveral/Hangar/4040/jcc.html.
Simpson, L. T. Value-Driven Redundancy Elimination. PhD thesis, Rice University, Apr. 1996. http://www.cs.rice.edu/ lts/thesis.ps.gz.
TowerJ release 2.0: A high performance compiler for server-side Java. http://www.twr.com/java/towerj2.html.
Turboj home page, http://www.opengroup.org/openitsol/turboj.
Wegman, M. N., and Zadeck, F. K. Constant propagation with conditional branches. ACM Transactions on Programming Languages and Systems 13, 2 (Apr. 1991), 181–210.
Wilkinson, T. http://www.kaffe.org/.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Weiss, M. et al. (1998). TurboJ, a Java bytecode-to-native compiler. In: Mueller, F., Bestavros, A. (eds) Languages, Compilers, and Tools for Embedded Systems. LCTES 1998. Lecture Notes in Computer Science, vol 1474. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0057785
Download citation
DOI: https://doi.org/10.1007/BFb0057785
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65075-1
Online ISBN: 978-3-540-49673-1
eBook Packages: Springer Book Archive