| A. Coglio. Simple verification technique for complex java bytecode subroutines. In In: Proc. 4th ECOOP Workshop on Formal Techniques for Javalike Programs. 39, 2002. |
....establishing finer properties of the bytecode that go beyond the basic safety properties of bytecode verification (see section 8) The article by Basin et al. in this volume [2] explores the model checking approach to bytecode verification in great details. Brisset [4] and independently Coglio [8] extract the essence of the model checking approach: the idea of exploring all reachable states 23 of the abstract interpreter. They consider the transition relation obtained by combining the transition relation of the type level abstract interpreter (Figure 2) with the successor relation ....
....the ML code of a bytecode verifier from the proof. Klein and Wildmoser [29] also prove the correctness of this approach using Isabelle HOL. Their proof builds on a generic dataflow analysis framework, and thus seems reusable for the variants of the BC algorithm discussed in section 6.3. Coglio [8] argues that the BC verification algorithm is the most precise of all reasonable verification algorithms, in the sense that it accepts all bytecode that does not crash a defensive virtual machine that would follow all execution paths across conditional jumps, regardless of the value of the ....
[Article contains additional citation context not shown here]
Coglio, A.: 2002, `Simple verification technique for complex Java bytecode subroutines'. In: 4th ECOOP Workshop on Formal Techniques for Java-like Programs. Extended version available as Kestrel Institute technical report.
....recursion. It seems that any verifier that checks each subroutine only once will reject legal Java programs like the one above. This includes also various systems by Qian [12] There exist bytecode verifiers that assign more than one stack map to instructions in subroutines (e.g. Coglio [2], Haase [7] Henrio and Serpette [8] Such bytecode verifiers accept Test1 and Test2, since a subroutine can then be typed (or verified) di#erently for each call of the subroutine. An equivalent approach would be to inline finally blocks and embedded subroutines. Both approaches, however, lead to ....
Coglio, A.: 2002, `Simple Verification Technique for Complex Java Bytecode Subroutines'. In: Proc. 4th ECOOP Workshop on Formal Techniques for Javalike Programs. 39
No context found.
Coglio A. Simple verification technique for complex Java bytecode subroutines. Proceedings of the 4th ECOOP Workshop on Formal Techniques for Java-like Programs, June 2002.
No context found.
Alessandro Coglio. Simple verification technique for complex Java bytecode subroutines. In Proc. 4th ECOOP Workshop on Formal Techniques for Java-like Programs, June 2002.
No context found.
Alessandro Coglio. Simple verification technique for complex Java bytecode subroutines. In Proc. 4th ECOOP Workshop on Formal Techniques for Java-like Programs, June 2002.
No context found.
Alessandro Coglio. Simple verification technique for complex Java bytecode subroutines. Technical report, Kestrel Institute, December 2001. Revised May 2002. Available at http://www.kestrel.edu/java.
....where type safety can be broken and or certain compiled programs are rejected. For example, the off card verifier of Sun s Java Card Development Kit version 2.1. 2, developed by Trusted Logic, rejects the bytecode in Figure 6 because of a false recursive subroutine call detected at address 3 [20,23]. 5.9.4. Fundamental limit Consider the Java program in Figure 7, adapted from [24] It is reported in [24] that the resulting bytecode is rejected by all the verifiers tried by the authors, including those in various versions of Sun s Java 2 SDK, Netscape, and Internet Explorer, as well as the ....
....is only one subroutine that is always exited via ret. The limit is inherent to the approach of tracking modified variables and selectively propagating types from ret and jsr. 5.9.5. Solution An alternative approach to subroutines that overcomes the fundamental limit exposed above is presented in [20,23]. The idea is the following; see [20,23] for details. 0: iload 0 1: ifeq 7 2: iconst 1 3: istore 2 4: jsr 15 5: iload 2 6: ireturn 7: iconst 2 8: istore 1 9: jsr 15 10: goto 21 11: astore 3 exception handler protecting addresses 0 to 10 12: jsr 15 13: aload 3 14: athrow 15: ....
[Article contains additional citation context not shown here]
Coglio A. Simple verification technique for complex Java bytecode subroutines. Proceedings of the 4th ECOOP Workshop on Formal Techniques for Java-like Programs, June 2002; http://www.kestrel.edu/java. (Long Version)
.... Java bytecode verifier, which has been written in Specware and refined to a running implementation (see [6] for a preliminary account) In this process, we have designed various improvements over Sun s spec and implementation of bytecode verification [3] in particular the treatment of subroutines [4] and subtype checks [10] We have also identified some bugs in Sun s spec and implementation, and proposed corrections [5] Furthermore, we have developed a formal spec of the JVM class loading mechanisms along with their interplay with bytecode verification, and proved a type safety theorem [10] ....
Alessandro Coglio. Simple verification technique for complex Java bytecode subroutines. Technical report, Kestrel Institute, December 2001.
No context found.
A. Coglio. Simple verification technique for complex java bytecode subroutines. In In: Proc. 4th ECOOP Workshop on Formal Techniques for Javalike Programs. 39, 2002.
No context found.
A. Coglio. Simple verification technique for complex Java bytecode subroutines. In Proc. 4th ECOOP Workshop on Formal Techniques for Java-like Programs, 2002.
No context found.
Coglio, A.: Simple verification technique for complex Java bytecode subroutines, in Proc. 4th ECOOP Workshop on Formal Techniques for Java-like Programs, 2002.
No context found.
Alessandro Coglio. Simple verification technique for complex Java bytecode subroutines. In Proc. 4th ECOOP Workshop on Formal Techniques for Java-like Programs. Technical Report NIII-R0204, Computing Science Department, University of Nijmegen, 2002.
No context found.
Alessandro Coglio. Simple verification technique for complex Java bytecode subroutines. Technical Report, Kestrel Institute, December 2001.
No context found.
Coglio, A.: 2002, `Simple Verification Technique for Complex Java Bytecode Subroutines'. In: Proc. 4th ECOOP Workshop on Formal Techniques for Javalike Programs.
No context found.
Coglio, A.: 2001b, `Simple Verification Technique for Complex Java Bytecode Subroutines'. Technical report, Kestrel Institute.
No context found.
Coglio, A.: 2002, `Simple Verification Technique for Complex Java Bytecode Subroutines'. In: Proc. 4th ECOOP Workshop on Formal Techniques for Javalike Programs.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC