Provably Correct Control-Flow Graphs from Java Programs with Exceptions

A. Amighi, Pedro de Carvalho Gomes, Marieke Huisman

    Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

    388 Downloads (Pure)

    Abstract

    We present an algorithm to extract flow graphs from Java bytecode, focusing on exceptional control flows. We prove its correctness, meaning that the behaviour of the extracted control-flow graph is an over-approximation of the behaviour of the original program. Thus any safety property that holds for the extracted control-flow graph also holds for the original program. This makes control-flow graphs suitable for performing different static analyses. For precision and efficiency, the extraction is performed in two phases. In the first phase the program is transformed into a BIR program, where BIR is a stack-less intermediate representation of Java bytecode; in the second phase the control-flow graph is extracted from the BIR representation. To prove the correctness of the two-phase extraction, we also define a direct extraction algorithm, whose correctness can be proven immediately. Then we show that the behaviour of the control-flow graph extracted via the intermediate representation is an over-approximation of the behaviour of the directly extracted graphs, and thus of the original program.
    Original languageUndefined
    Title of host publicationPapers the of 2nd International Conference on Formal Verification of Object-Oriented Software, FoVeOOS'11
    Place of PublicationKarlsruhe
    PublisherKarlsruhe Institute of Technology
    Pages31-48
    Number of pages18
    ISBN (Print)2190-4782
    Publication statusPublished - Oct 2011
    Event2nd International Conference on Formal Verification of Object-Oriented Software, FoVeOOS 2011 - Turin, Italy
    Duration: 5 Oct 20117 Oct 2011

    Publication series

    NameKarlsruhe Reports in Informatics
    PublisherKarlsruhe Institute of Technology
    Number26
    Volume26
    ISSN (Print)2190-4782

    Conference

    Conference2nd International Conference on Formal Verification of Object-Oriented Software, FoVeOOS 2011
    Period5/10/117/10/11
    OtherOctober 5-7, 2011

    Keywords

    • METIS-285024
    • IR-79610
    • Control flow graph
    • EWI-21319
    • Static Analysis
    • CR-D.3.1
    • Java bytecode

    Cite this