Improving Communicating Pushdown System Model Checking
Nicholas Kidd, Thomas Reps, and Tayssir Touili
Communicating pushdown systems (CPDSs) are a formalism for modeling
the behaviors of concurrent systems. They have been used to model
concurrent C and Java programs. Once a concurrent program has been
modeled as a CPDS, a reachability query is given to a CPDS model
checker to determine if the property of interest is satisfied by the
program model.
Our CPDS model checker implements a semi-decision procedure for
answering a reachability query. For a given CPDS, the semi-decision
procedure defines increasingly more-precise approximations of the
reachability relation of a CPDS to determine if the query holds.
The focus of this paper is on improving the semi-decision procedure
employed by the CPDS model checker. We define a new semi-decision
procedure that is more precise and more efficient, and explore three
new abstraction-refinement policies. When analyzing CPDSs generated
from Java programs, the new policies produced median speedups of 2.4,
1.2, and 2.5, and maximum speedups of 5.4, 5.3, and 7.6.
(Click here to access the paper:
PDF.)