An approach for formal verification of updated Java bytecode programs
No Thumbnail Available
Date
2015
Journal Title
Journal ISSN
Volume Title
Publisher
CEUR-WS
Abstract
This paper deals with formal specification and verification of Java bytecode update. Programs update for Java applications has gained a wide interest since it is used for several purposes: transforming semantics of a program, adding features to a program or performing optimizations. In this paper, we focus on program transformations for Java programs at the bytecode level. Because these transformations may introduce errors, our goal is to provide a formal way to verify the update and establish its correctness. Our approach for formal specification and verification of updated Java bytecode programs is based on four ingredients: a formal interpretation of the semantics of update operations, a functional representation of bytecode, bytecode annotation and predicate transformation calculus.We use the concept of Hoare predicate transformation to derive a specification of an annotated bytecode. Annotations are used to express update operations within the code. A functional representation is used to model annotations and bytecode. The approach derives then a new specification for the annotated bytecode using a weakest precondition calculus defined to deal with update operations. Verification conditions are then generated and proved to establish the correction of the update
Description
Keywords
Bytecode transformation, Bytecode verification, Formal semantics, Weakest precondition calculus
