Verifying Concurrent Message-Passing C Programs with Recursive Calls

dc.contributor.authorChaki, Sagaren_US
dc.contributor.authorClarke, Edmunden_US
dc.contributor.authorKidd, Nicholasen_US
dc.contributor.authorReps, Thomasen_US
dc.contributor.authorTouili, Tayssiren_US
dc.date.accessioned2012-03-15T17:19:17Z
dc.date.available2012-03-15T17:19:17Z
dc.date.created2005en_US
dc.date.issued2005
dc.description.abstractWe consider the model-checking problem for C programs with (1) data ranging over very large domains, (2) (recursive) procedure calls, and (3) concurrent parallel components that communicate via synchronizing actions. We model such programs using communicating pushdown systems, and reduce the reachability problem for this model to deciding the emptiness of the intersection of two context-free languages L1 and L2. We tackle this undecidable problem using a CounterExample Guided Abstraction Refinement (CEGAR) scheme based on (1) computing over-approximations A1 and A2 of L1 and L2, (2) checking if the intersection of A1 and A2 is non-empty, and, if the non-empty intersection represents an infeasible trace, (3) refining these over-approximations A1 and A2. Furthermore, we present new fully automatic predicateabstraction refinement techniques to obtain communicating pushdown systems from C source code. We have implemented our techniques in the model-checker MAGIC. We report our experimental results on some non-trivial benchmarks.en_US
dc.format.mimetypeapplication/pdfen_US
dc.identifier.citationTR1532en_US
dc.identifier.urihttp://digital.library.wisc.edu/1793/60448
dc.publisherUniversity of Wisconsin-Madison Department of Computer Sciencesen_US
dc.titleVerifying Concurrent Message-Passing C Programs with Recursive Callsen_US
dc.typeTechnical Reporten_US

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
TR1532.pdf
Size:
1.91 MB
Format:
Adobe Portable Document Format