ABSTRACT
In this paper, we report on our experiences with guaranteeing GC-pointer safety when using unsafe low-level language extensions to implement a JVM in Java. We give an overview of the original unsafe language extensions that were defined for use by Jalapeño implementers, and introduce sanitized replacements that capture common idioms while also guaranteeing GC-pointer safety. We also outline some simple static and dynamic checks for correct usage of low-level operations, and examine how code containing low-level operations can be optimized correctly and effectively.
- 1.B. Alpern, C. R. Attanasio, J. J. Barton, M. G. Burke, P. Cheng, J.-D. Choi, A. Cocchi, S. J. Fink, D. Grove, M. Hind, S. F. Hummel, D. Lieber, V. Litvinov, M. F. Mergen, T. Ngo, J. R. Russell, V. Sarkar, M. J. Serrano, J. C. Shepherd, S. E. Smith, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapeno virtual machine. IBM Systems Journal, 39(1), 2000.]] Google ScholarDigital Library
- 2.B. Alpern, D. Attanasio, J. J. Barton, A. Cocchi, D. Lieber, S. Smith, and T. Ngo. Implementing Jalapeno in Java. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 314-324, 1999.]] Google ScholarDigital Library
- 3.M. Arnold, S. Fink, D. Grove, M. Hind, and P. Sweeney. Adaptive optimization in the Jalapeno JVM. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, Oct. 2000.]] Google ScholarDigital Library
- 4.M. G. Burke, J.-D. Choi, S. Fink, D. Grove, M. Hind, V. Sarkar, M. J. Serrano, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapeno dynamic optimizing compiler for Java. In ACM 1999 Java Grande Conference, pages 129-141, June 1999.]] Google ScholarDigital Library
- 5.C. Chambers, I. Pechtchanski, V. Sarkar, M. J. Serrano, and H. Srinivasan. Dependence analysis for Java. In 12th International Workshop on Languages and Compilers for Parallel Computing, Aug. 1999.]] Google ScholarDigital Library
- 6.C.-C. Chang and T. von Eicken. Javia: A java interface to the virtual interface architecture. Concurrency: Practice and Experience, Special Issue on Java for High-Performance Applications, Dec. 1999.]]Google Scholar
- 7.J.-D. Choi, D. Grove, M. Hind, and V. Sarkar. Efficient and precise modeling of exceptions for the analysis of Java programs. In ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, pages 21-31, Sept. 1999.]] Google ScholarDigital Library
- 8.J. Launchbury and S. L. Peyton Jones. Lazy Functional State Threads. In Proceedings of the ACM SIGPLAN'94 Conference onProgramming Language Design and Implementation (PLDI), pages 24-35, June 1994.]] Google ScholarDigital Library
- 9.S. L. Peyton Jones and J. Launchbury. State in haskell. Lisp and Symbolic Computation, 8(4):293-341, Dec. 1995.]] Google ScholarDigital Library
- 10.D. Tarditi, G. Morrisett, P. Cheng, C. Stone, R. Harper, and P. Lee. TIL: a type-directed optimizing compiler for ML. In Proceedings of the ACM SIGPLAN '96 Conference on Programming Language Design and Implementation, pages 181-192, May 1996.]] Google ScholarDigital Library
- 11.M. Welsh and D. Culler. Jaguar: Enabling Efficient Communication and I/O from Java. Concurrency: Practice and Experience, Special Issue on Java for High-Performance Applications, Dec. 1999.]]Google Scholar
Index Terms
- Program analysis for safety guarantees in a Java virtual machine written in Java
Comments