Research Article
Simple verification technique for complex Java bytecode subroutines
Article first published online: 27 APR 2004
DOI: 10.1002/cpe.798
Copyright © 2004 John Wiley & Sons, Ltd.
Issue
1532-0634/asset/cover.gif?v=1&s=6094df24c795ce080ff6df6ff3b6bcec19adb708)
Concurrency and Computation: Practice and Experience
Special Issue: Formal Techniques for Java-like Programs
Volume 16, Issue 7, pages 647–670, June 2004
Additional Information
How to Cite
Coglio, A. (2004), Simple verification technique for complex Java bytecode subroutines. Concurrency Computat.: Pract. Exper., 16: 647–670. doi: 10.1002/cpe.798
Publication History
- Issue published online: 27 APR 2004
- Article first published online: 27 APR 2004
- Manuscript Accepted: 13 JUN 2003
- Abstract
- References
- Cited By
Keywords:
- Java;
- subroutines;
- bytecode verification
Abstract
Java is normally compiled to bytecode, which is verified and then executed by the Java Virtual Machine. Bytecode produced via compilation must pass verification. The main cause of complexity for bytecode verification is subroutines, used by compilers to generate more compact code. The techniques to verify subroutines proposed in the literature reject certain programs produced by mundane compilers, are difficult to realize within an implementation of the Java Virtual Machine or are relatively complicated. This paper presents a novel technique which is very simple to understand, implement and prove sound. It is also very powerful: the set of accepted programs has a simple characterization which most likely includes all the code produced by current compilers and which enables future compilers to make more extensive use of subroutines. Copyright © 2004 John Wiley & Sons, Ltd.

1532-0634/asset/olbannerleft.gif?v=1&s=a4e4e145787de94e1d91eaab3c8c29d8a9d96a26)