MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Simple verification technique for complex Java bytecode subroutines (2002) [11 citations — 3 self]

Download:
Download as a PDF
by Alessandro Coglio
In Proc. 4th ECOOP Workshop on Formal Techniques for Java-like Programs
ftp://ftp.kestrel.edu/pub/papers/coglio/subr.pdf
Add To MetaCart

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 or are otherwise difficult to realize within an implementation of the Java Virtual Machine. 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 code generable by current compilers and which enables future compilers to make more extensive use of subroutines. 1

Citations

1415 The Java Language Specification – Gosling, Joy, et al. - 1996
305 Principles of Program Analysis – Nielson, Nielson, et al. - 1999
181 A type system for java bytecode subroutines – Stata, Abadi - 1998
79 Java Intermediate Bytecodes – Gosling - 1995
74 The Java TM Virtual Machine Specification – Lindholm, Yellin - 1996
65 Java and the Java Virtual Machine: Definition, Verification, Validation", Chapter 2 – Stark, Schmid, et al. - 2001
58 A simple, comprehensive type system for Java bytecode subroutines – O’Callahan - 1999
54 Garbage collection and local variable type-precision and liveness in Java virtual machines. See PLDI – AGESEN, DETLEFS, et al. - 1998
49 A formal specification of Java Virtual Machine instructions for objects, methods and subroutines – Qian - 1998
39 Java bytecode verification: an overview – LEROY - 2001
21 On a new method for dataflow analysis of Java virtual machine subroutines – Hagiya, Tozawa - 1998
18 The costs and benefits of Java bytecode subroutines – Freund - 1998
17 A compositional account of the Java Virtual Machine – Yelland - 1999
15 Inside Java TM 2 Platform Security – Gong - 1999
12 A Type System for Java Bytecode Subroutines and Exceptions – Freund, Mitchell
11 Java Card TM Technology for Smart Cards – Chen - 2000
10 Java bytecode verification using model checking – Posegga, Vogt - 1998
9 Improving the official specification of Java bytecode verification – Coglio - 2001
9 Connected, limited device configuration. specification version 1.0a – Connected - 2000
7 level security in Java – Low - 1995
5 The Java TM Programming Language. Addison-Wesley, third edition – Arnold, Gosling, et al. - 2000
3 Java bytecode subroutines demystified – Coglio - 2002
3 Java bytecode verification: A complete formalization – Coglio - 2002
3 Private communication – Frey - 2002
2 Private communication – Grothoff - 2001
2 Specware TM . Information at http://www.specware.org – Institute
1 TM file format, 2002. Available at http://www.j-consortium.org – JEFF
1 TL Embedded Verifier. Information at http://www.trustedlogic.fr/solution/TL Embedded Verifier.html – Logic