Type-Separated Bytecode – Its Construction and Evaluation

  • Philipp Adler
  • Wolfram Amme
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5779)

Abstract

A lot of constrained systems still use interpreters to run mobile applications written in Java. These interpreters demand for only a few resources. On the other hand, it is difficult to apply optimizations during the runtime of the application. Annotations could be used to achieve a simpler and faster code analysis, which would allow optimizations even for interpreters on constrained devices. Unfortunately, there is no viable way of transporting annotations to and verifying them at the code consumer. In this paper we present type-separated bytecode as an intermediate representation which allows to safely transport annotations as type-extensions. We have implemented several versions of this system and show that it is possible to obtain a performance comparable to Java Bytecode, even though we use a type-separated system with annotations.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Le, A., Lhoták, O., Hendren, L.: Using inter-procedural side-effect information in JIT optimizations. In: Bodik, R. (ed.) CC 2005. LNCS, vol. 3443, pp. 287–304. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  2. 2.
    Whaley, J., Rinard, M.: Compositional pointer and escape analysis for Java programs. In: Proceedings of the Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA 1999), Denver, CO. ACM SIGPLAN Notices, vol. 34, pp. 187–206. ACM Press, New York (1999)Google Scholar
  3. 3.
    Gay, D., Steensgaard, B.: Fast escape analysis and stack allocation for object-based programs. In: Watt, D.A. (ed.) CC 2000. LNCS, vol. 1781, p. 82. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  4. 4.
    Amme, W., von Ronne, J., Franz, M.: SSA-based mobile code: Implementation and empirical evaluation. TACO 4(2) (2007)Google Scholar
  5. 5.
    Jones, J., Kamin, S.N.: Annotating Java class files with virtual registers for performance. Concurrency: Practice and Experience 12(6), 389–406 (2000)CrossRefGoogle Scholar
  6. 6.
    Yessick, D.E.: Removal of bounds checks in an annotation aware JVM (May 17, 2004)Google Scholar
  7. 7.
    Franz, M., Krintz, C., Haldar, V., Stork, C.H.: Tamper-proof annotations by construction. Technical Report 02-10, Department of Information and Computer Science, University of California, Irvine (March 2002)Google Scholar
  8. 8.
    von Ronne, J., Hartmann, A., Amme, W., Franz, M.: Efficient online optimization by utilizing offline analysis and the SafeTSA representation (2002)Google Scholar
  9. 9.
    Amme, W., Möller, M.A., Adler, P.: Data flow analysis as a general concept for the transport of verifiable program annotations. Electr. Notes Theor. Comput. Sci. 176(3), 97–108 (2007)CrossRefGoogle Scholar
  10. 10.
    Amme, W., von Ronne, J., Franz, M.: Using the SafeTSA representation to boost the performance of an existing Java Virtual Machine. In: Proceedings of the 10th International Workshop on Compilers for Parallel Computers (CPC 2003), Amsterdam, Netherland (January 2003)Google Scholar
  11. 11.
    Amme, W., Dalton, N., Franz, M., von Ronne, J.: SafeTSA: A type safe and referentially secure mobile-code representation based on static single assignment form. In: Proceedings of the Conference on Programming Language Design and Implementation (PLDI 2001), Snowbird, Utah, USA. ACM SIGPLAN Notices, vol. 36, pp. 137–147. ACM Press, New York (2001)CrossRefGoogle Scholar
  12. 12.
    von Ronne, J., Wang, N., Apel, A., Franz, M.: A virtual machine for interpreting programs in static single assignment form. Technical Report 03-19, Information and Computer Science, University of California, Irvine (October 2003)Google Scholar
  13. 13.
    Necula, G.C.: Proof-carrying code. In: Proceedings of the Symposium on Principles of Programming Languages (POPL 1997). ACM SIGPLAN Notices, pp. 106–119. ACM Press, New York (1997)Google Scholar
  14. 14.
    Azevedo, A., Nicolau, A., Hummel, J.: Java annotation-aware just-in-time (AJIT) compilation system. In: Proceedings of the Conference on Java Grande (JAVA 1999), pp. 142–151 (1999)Google Scholar
  15. 15.
    Krintz, C., Calder, B.: Using annotations to reduce dynamic optimization time. In: Proceedings of the Conference on Programming Language Design and Implementation (PLDI 2001). ACM SIGPLAN Notices, vol. 36.5, pp. 156–167. ACM Press, New York (2001)CrossRefGoogle Scholar
  16. 16.
    Le, A., Lhoták, O., Hendren, L.J.: Using inter-procedural side-effect information in JIT optimizations. In: Bodik, R. (ed.) CC 2005. LNCS, vol. 3443, pp. 287–304. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  17. 17.
    Rose, E., Rose, K.H.: Lightweight bytecode verification. In: Proceedings of the Workshop on Formal Underpinnings of the Java Paradigm (OOPSLA 1998) (October 1998)Google Scholar
  18. 18.
    Franz, M., Krintz, C., Haldar, V., Stork, C.H.: Tamper proof annotations. Technical Report 02-10, Department of Information and Computer Science, University of California, Irvine (March 2002)Google Scholar
  19. 19.
    Hartmann, A., Amme, W., von Ronne, J., Franz, M.: Code annotation for safe and efficient dynamic object resolution. In: Knoop, J., Zimmermann, W. (eds.) Proceedings of the 2nd International Workshop on Compiler Optimization Meets Compiler Verification (COCV 2003), Warsaw, Poland, April 2003, pp. 18–32 (2003)Google Scholar
  20. 20.
    Vallée-Rai, R., Gagnon, E., Hendren, L., Lam, P., Pominville, P., Sundaresan, V.: Soot: A Java Optimization Framework (1999), http://www.sable.mcgill.ca/soot/
  21. 21.
    Sun Microsystems, Inc.: The K Virtual Machine (KVM), http://java.sun.com/products/cldc/wp/index.html
  22. 22.
    Embedded Microprocessor Benchmark Consortium: GrinderBench, http://www.grinderbench.com/about.html
  23. 23.
    Edinburgh Parallel Computing Centre: Java Grande Forum Benchmark Suite, http://www.epcc.ed.ac.uk/research/activities/java-grande/

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Philipp Adler
    • 1
  • Wolfram Amme
    • 1
  1. 1.Institute of Computer ScienceFriedrich-Schiller-University JenaJenaGermany

Personalised recommendations