Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Logical foundations for typed object-oriented languages
PROCOMET '98 Proceedings of the IFIP TC2/WG2.2,2.3 International Conference on Programming Concepts and Methods
Electronic Notes in Theoretical Computer Science (ENTCS)
Boogie: a modular reusable verifier for object-oriented programs
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
A typed, compositional logic for a stack-based abstract machine
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
COSTA: Design and Implementation of a Cost and Termination Analyzer for Java Bytecode
Formal Methods for Components and Objects
A Machine Checked Soundness Proof for an Intermediate Verification Language
SOFSEM '09 Proceedings of the 35th Conference on Current Trends in Theory and Practice of Computer Science
Live heap space analysis for languages with garbage collection
Proceedings of the 2009 international symposium on Memory management
A termination analyzer for Java bytecode based on path-length
ACM Transactions on Programming Languages and Systems (TOPLAS)
A machine-checked soundness proof for an efficient verification condition generator
Proceedings of the 2010 ACM Symposium on Applied Computing
Parametric inference of memory requirements for garbage collected languages
Proceedings of the 2010 international symposium on Memory management
From object fields to local variables: a practical approach to field-sensitive analysis
SAS'10 Proceedings of the 17th international conference on Static analysis
Handling Non-linear Operations in the Value Analysis of COSTA
Electronic Notes in Theoretical Computer Science (ENTCS)
Automatically verifying typing constraints for a data processing language
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
Joogie: from Java through Jimple to Boogie
Proceedings of the 2nd ACM SIGPLAN International Workshop on State Of the Art in Java Program analysis
Hi-index | 0.00 |
Many modern program verifiers translate the program to be verified and its specification into a simple intermediate representation and then compute verification conditions on this representation. Using an intermediate language improves the interoperability of tools and facilitates the computation of small verification conditions. Even though the translation into an intermediate representation is critical for the soundness of a verifier, this step has not been formally verified. In this paper, we formalize the translation of a small subset of Java bytecode into an imperative intermediate language similar to BoogiePL. We prove soundness of the translation by showing that each bytecode method whose BoogiePL translation can be verified, can also be verified in a logic that operates directly on bytecode.