Advertisement

Code Generation and Optimization for Java-to-C Compilers

  • Youngsun Han
  • Shinyoung Kim
  • Hokwon Kim
  • Seok Joong Hwang
  • Seon Wook Kim
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4097)

Abstract

Currently the Java programming language is popularly used in Internet-based systems, mobile and ubiquitous devices because of its portability and programability. However, inherently its performance is sometimes very limited due to interpretation overhead of class files by Java Virtual Machines (JVMs). In this paper, as one of the solutions to resolve the performance limitation, we present code generation and optimization techniques for a Java-to-C translator. Our compiler framework translates Java bytecode into C codes with preserving Java’s programming semantics, such as inheritance, method overloading, virtual method invocation, garbage collection, and so on. Moreover, our compiler translates for in Java into for in C instead of test and jump for better performance. Our runtime library fully supports Connected Limited Device Configuration (CLDC) 1.0 API’s.

Keywords

State Machine Basic Block Garbage Collection Exception Handling Java Virtual Machine 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. 1.
    Sun Microsystems: Java2 Platform, Standard Edition, http://java.sun.com/j2se/
  2. 2.
    Sun Microsystems: Java2 Platform, Micro Edition, http://java.sun.com/j2me/
  3. 3.
    Sun Microsystems: The Source for Java Technology, http://java.sun.com/
  4. 4.
    Bacon, D., Fink, S., Grove, D.: Space and time efficient implementation of the Java object model. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, pp. 10–14. Springer, Heidelberg (2002)Google Scholar
  5. 5.
    Undine, Kleine, A.: Tya, http://sax.sax.de/~adlibit/
  6. 6.
    Shudo, K.: shuJIT, http://www.shudo.net/jit/#docs
  7. 7.
    The Free Software Foundation: Guide to GNU gcj, http://gcc.gnu.org/java/index.html
  8. 8.
    Proebsting, T.A., Townsend, G., Bridges, P., Hartman, J.H., Newsham, T., Watterson, S.A.: Toba: Java for applications: A way ahead of time (WAT) compiler. In: Proceedings of the 3rd USENIX Conference on Object-Oriented Technologies and Systems (COOTS 1997) (1997)Google Scholar
  9. 9.
    Varma, A., Bhattacharyya, S.S.: Java-through-C compilation: An enabling technology for java in embedded systems. In: Design Automation and Test in Europe (DATE 2003), Paris, France (2004)Google Scholar
  10. 10.
    Han, Y., Kim, S., Kim, H., Hwang, S.J., Kim, S.W.: Code generation and optimization for java-to-c compiler, http://compiler.korea.ac.kr/papers/java2c_report.pdf
  11. 11.
    Lindholm, T., Yellin, F.: The Java Virtual Machine Specification. Addison-Wesley, Reading (1996)Google Scholar
  12. 12.
    Boehm, H.J., Demers, A., Weiser, M.: Boehm-Demers-Weiser conservative garbage collector, http://www.hpl.hp.com/personal/Hans_Boehm/gc/
  13. 13.
    Sun Microsystems: Connected Limited Device Configuration (CLDC), http://java.sun.com/products/cldc/
  14. 14.
    National Institute of Standards and Technology: SciMark 2.0, http://math.nist.gov/scimark2/

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Youngsun Han
    • 1
  • Shinyoung Kim
    • 1
  • Hokwon Kim
    • 1
  • Seok Joong Hwang
    • 1
  • Seon Wook Kim
    • 1
  1. 1.Department of Electronics and Computer EngineeringKorea UniversitySeoulKorea

Personalised recommendations