Download:
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
|