Program verification with interacting analysis plugins
File(s)DTR06-11.pdf (578.02 KB)
Published version
Author(s)
Charlton, Nathaniel
Type
Report
Abstract
In this paper we propose and argue for a modular framework for interprocedural program analysis,
where multiple program analysis tools are combined in order to exploit the particular advantages of
each. This allows for “plugging together” such tools as required by each verification task and makes it easy
to integrate new analyses. Our framework automates the sharing of information between plugins using a first
order logic with transitive closure, in a way inspired by the open product of Cortesi et al..
We describe a prototype implementation of our framework, which performs static assertion checking on
a simple language for heap-manipulating programs. This implementation includes plugins for three existing
approaches — predicate abstraction, 3-valued shape analysis and a decidable pointer analysis — and for a
simple type system. We demonstrate through a detailed example the increase in precision that our approach
can provide. Finally we discuss the design decisions we have taken, in particular the tradeoffs involved in
the choice of language by which the plugins communicate, and identify some future directions for our work.
where multiple program analysis tools are combined in order to exploit the particular advantages of
each. This allows for “plugging together” such tools as required by each verification task and makes it easy
to integrate new analyses. Our framework automates the sharing of information between plugins using a first
order logic with transitive closure, in a way inspired by the open product of Cortesi et al..
We describe a prototype implementation of our framework, which performs static assertion checking on
a simple language for heap-manipulating programs. This implementation includes plugins for three existing
approaches — predicate abstraction, 3-valued shape analysis and a decidable pointer analysis — and for a
simple type system. We demonstrate through a detailed example the increase in precision that our approach
can provide. Finally we discuss the design decisions we have taken, in particular the tradeoffs involved in
the choice of language by which the plugins communicate, and identify some future directions for our work.
Date Issued
2006-01-01
Citation
Departmental Technical Report: 06/11, 2006, pp.1-37
Publisher
Department of Computing, Imperial College London
Start Page
1
End Page
37
Journal / Book Title
Departmental Technical Report: 06/11
Copyright Statement
© 2006 The Author(s). This report is available open access under a CC-BY-NC-ND (https://creativecommons.org/licenses/by-nc-nd/4.0/)
Publication Status
Published
Article Number
06/11