Skip to main content

TurboJ, a Java bytecode-to-native compiler

  • Refereed Papers
  • Conference paper
  • First Online:
Languages, Compilers, and Tools for Embedded Systems (LCTES 1998)

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bothner, P. Compiling Java for embedded systems. http://www.cygnus.com/news/whitepapers/compiling.html.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Article  Google Scholar 

  5. 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.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. Lindhom, T., and Yellin, F. The Java Virtual Machine Specification. Addison-Wesley, 1996.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. 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/.

    Google Scholar 

  10. Shaylor, N. JCC — a Java to C converter. http://www.geocities.com/CapeCanaveral/Hangar/4040/jcc.html.

    Google Scholar 

  11. Simpson, L. T. Value-Driven Redundancy Elimination. PhD thesis, Rice University, Apr. 1996. http://www.cs.rice.edu/ lts/thesis.ps.gz.

    Google Scholar 

  12. TowerJ release 2.0: A high performance compiler for server-side Java. http://www.twr.com/java/towerj2.html.

    Google Scholar 

  13. Turboj home page, http://www.opengroup.org/openitsol/turboj.

    Google Scholar 

  14. 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.

    Article  Google Scholar 

  15. Wilkinson, T. http://www.kaffe.org/.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Frank Mueller Azer Bestavros

Rights and permissions

Reprints 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

Publish with us

Policies and ethics