2006
DOI: 10.1007/11691372_22
|View full text |Cite
|
Sign up to set email alerts
|

Verifying Concurrent Message-Passing C Programs with Recursive Calls

Abstract: Abstract. We 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 L 1 and L 2 . We tackle this undecidable problem using a CounterExample Guided Abstraction Refinemen… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
58
0

Year Published

2006
2006
2020
2020

Publication Types

Select...
5
3

Relationship

1
7

Authors

Journals

citations
Cited by 57 publications
(61 citation statements)
references
References 26 publications
0
58
0
Order By: Relevance
“…Chaki et al [2] do this in a different context, namely the verification of concurrent C programs; an implementation was incorporated into the model checker MAGIC [3].…”
Section: Conclusion and Further Workmentioning
confidence: 99%
“…Chaki et al [2] do this in a different context, namely the verification of concurrent C programs; an implementation was incorporated into the model checker MAGIC [3].…”
Section: Conclusion and Further Workmentioning
confidence: 99%
“…, C n ), we define the target language of a CPDS CP with respect to S as Lang(CP, S) = 1≤i≤n Lang(P i , C i ), where intersection enforces that all the P i synchronize on the global actions. The goal of the CPDS model checker [3] is to determine if Lang(CP, S) is empty. Because each language Lang(P i , C i ) can be, in general, a context-free language, and the problem of checking their intersection for emptiness is known to be undecidable, the CPDS model checker algorithm is only a semi-decision procedure.…”
Section: Definitionmentioning
confidence: 99%
“…Additionally, in some cases, the semi-decision procedure can determine that Lang(CP, S) = ∅. We refer the reader to [3] for more details.…”
Section: Definitionmentioning
confidence: 99%
See 1 more Smart Citation
“…A context switch consists in a transfer of control from one process to another. This result allows for the discovery of many errors, since they typically manifest themselves after a few context switches [8,18,23]. Other approaches to analyzing multithreaded programs restrict the kind of communication between processes [18,26], or compute over-approximations of the set of reachable states [5].…”
Section: Introductionmentioning
confidence: 99%