EEMCS

Home > Publications
Home University of Twente
Education
Research
Prospective Students
Jobs
Publications
Intranet (internal)
 
 Nederlands
 Contact
 Search
 Organisation

EEMCS EPrints Service


22311 Sound Control-Flow Graph Extraction for Java Programs with Exceptions
Home Policy Brochure Browse Search User Area Contact Help

Amighi, A. and de Carvalho Gomes, P. and Gurov, D. and Huisman, M. (2012) Sound Control-Flow Graph Extraction for Java Programs with Exceptions. In: 10th International Conference on Software Engineering and Formal Methods (SEFM 2012), 1-5 Oct 2012, Thessaloniki, Greece. pp. 33-47. Lecture Notes in Computer Science 7504. Springer Verlag. ISSN 0302-9743 ISBN 978-3-642-33825-0

Full text available as:

PDF

315 Kb

Official URL: http://dx.doi.org/10.1007/978-3-642-33826-7_3

Abstract

We present an algorithm to extract control-flow graphs from Java bytecode, considering exceptional flows. We then establish its correctness: the behavior of the extracted graphs is shown to be a sound over-approximation of the behavior of the original programs. Thus, any temporal safety property that holds for the extracted control-flow graph also holds for the original program. This makes the extracted graphs suitable for performing various static analyses, in particular model checking. The extraction proceeds in two phases. First, we translate Java bytecode into BIR, a stack-less intermediate representation. The BIR transformation is developed as a module of Sawja, a novel static analysis framework for Java bytecode. Besides Sawja’s efficiency, the resulting intermediate representation is more compact than the original bytecode and provides an explicit representation of exceptions. These features make BIR a natural starting point for sound control-flow graph extraction. Next, we formally define the transformation from BIR to control-flow graphs, which (among other features) considers the propagation of uncaught exceptions within method calls. We prove the correctness of the two-phase extraction by suitably combining the properties of the two transformations with those of an idealized control-flow graph extraction algorithm, whose correctness has been proved directly. The control-flow graph extraction algorithm is implemented in the \textsc{ConFlEx} tool. A number of test-cases show the efficiency and the utility of the implementation.

Item Type:Conference or Workshop Paper (Full Paper, Talk)
Research Group:EWI-FMT: Formal Methods and Tools
Research Program:CTIT-DSN: Dependable Systems and Networks
Research Project:VerCors: Verification of Concurrent Data Structures
Uncontrolled Keywords:Control-Flow Graph, Program model, Program Analysis
ID Code:22311
Status:Published
Deposited On:15 October 2012
Refereed:Yes
International:Yes
More Information:statistics

Export this item as:

To correct this item please ask your editor

Repository Staff Only: edit this item