Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From system F to typed assembly language
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Fast, effective code generation in a just-in-time Java compiler
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Advanced compiler design and implementation
Advanced compiler design and implementation
A certifying compiler for Java
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
ABCD: eliminating array bounds checks on demand
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Using annotations to reduce dynamic optimization time
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Java Virtual Machine Specification
Java Virtual Machine Specification
A framework for optimizing Java using attributes
CASCON '00 Proceedings of the 2000 conference of the Centre for Advanced Studies on Collaborative research
Studying Energy Trade Offs in Offloading Computation/Compilation in Java-Enabled Mobile Devices
IEEE Transactions on Parallel and Distributed Systems
Speculative improvements to verifiable bounds check elimination
Proceedings of the 6th international symposium on Principles and practice of programming in Java
A Verifiable, Control Flow Aware Constraint Analyzer for Bounds Check Elimination
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
Efficient incremental information flow control with nested control regions
Proceedings of the 1st ACM SIGPLAN international workshop on Programming language and systems technologies for internet clients
Hi-index | 0.00 |
Many implementations of Java Virtual Machine (JVM) use optimizing dynamic compilation for improving performance of Java applications. However, optimizing compilation is expensive in terms of both time and memory space complexity. Annotations are frequently used to reduce the dynamic compilation overhead in embedded Java environments where the memory budget and CPU speed are limited. However, some annotations can cause the dynamic compiler to generate code that violates the security policy of the JVM. These annotations present a safety problem if they are not verified before being used by the compiler. In this work, we present annotation schemes for three frequently used optimizations: null pointer check removal, value liveness analysis, and array bound check removal. All our annotations can be verified at low cost during dynamic compilation time to guarantee that they do not cause the compiler to generate code that violates the security policy of the JVM.