Bytecode languages are at a very desirable degree of abstraction for performing formal analysis of programs, but at the same time pose new challenges when compared with traditional languages. This paper proposes a methodology for bytecode analysis which harmonizes two well-known formal verification techniques, model checking and symbolic execution. Model checking is a property-guided exploration of the system state space until the property is proved or disproved, producing in the latter case a counterexample execution trace. Symbolic execution emulates program execution by replacing concrete variable values with symbolic ones, so that the symbolic execution along a path represents the potentially infinite numeric executions that may occur along that path. We propose an approach where symbolic execution is used for building a possibly partial model of the program state space, and on-the-fly model checking is exploited for verifying temporal properties on it. The synergy of the two techniques yields considerable potential advantages: symbolic execution allows for modeling the state space of infinite-state software systems, limits the state explosion, and fosters modular verification; model checking provides fully automated verification of reachability properties of a program. To assess these potential advantages, we report our preliminary experience with the analysis of a safety-critical software system.

Braione, P., Denaro, G., Krena, B., Pezze', M. (2008). Verifying LTL Properties of Bytecode with Symbolic Execution. In Electronic Notes in Theoretical Computer Science (pp.1-14). Elsevier.

Verifying LTL Properties of Bytecode with Symbolic Execution

BRAIONE, PIETRO;DENARO, GIOVANNI;PEZZE', MAURO
2008

Abstract

Bytecode languages are at a very desirable degree of abstraction for performing formal analysis of programs, but at the same time pose new challenges when compared with traditional languages. This paper proposes a methodology for bytecode analysis which harmonizes two well-known formal verification techniques, model checking and symbolic execution. Model checking is a property-guided exploration of the system state space until the property is proved or disproved, producing in the latter case a counterexample execution trace. Symbolic execution emulates program execution by replacing concrete variable values with symbolic ones, so that the symbolic execution along a path represents the potentially infinite numeric executions that may occur along that path. We propose an approach where symbolic execution is used for building a possibly partial model of the program state space, and on-the-fly model checking is exploited for verifying temporal properties on it. The synergy of the two techniques yields considerable potential advantages: symbolic execution allows for modeling the state space of infinite-state software systems, limits the state explosion, and fosters modular verification; model checking provides fully automated verification of reachability properties of a program. To assess these potential advantages, we report our preliminary experience with the analysis of a safety-critical software system.
paper
Symbolic execution, software model checking, bytecode, formal analysis
English
Third Workshop on Bytecode Semantics, Verification, Analysis and Transformation (BYTECODE 2008)
2008
Electronic Notes in Theoretical Computer Science
2008
1
14
http://www.sciencedirect.com/science/journal/15710661
open
Braione, P., Denaro, G., Krena, B., Pezze', M. (2008). Verifying LTL Properties of Bytecode with Symbolic Execution. In Electronic Notes in Theoretical Computer Science (pp.1-14). Elsevier.
File in questo prodotto:
File Dimensione Formato  
BYTECODE2008.pdf

accesso aperto

Tipologia di allegato: Submitted Version (Pre-print)
Dimensione 272.46 kB
Formato Adobe PDF
272.46 kB Adobe PDF Visualizza/Apri

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10281/2320
Citazioni
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
Social impact