Nguyen Lam, Truc, Fischer, Bernd, La Torre, Salvatore and Parlato, Gennaro
Lazy sequentialization for the safety verification of unbounded concurrent programs
At 14th International Symposium on Automated Technology for Verification and Analysis (ATVA), Japan.
17 - 19 Oct 2016.
Lazy sequentialization has emerged as one of the most promising approaches for concurrent program analysis but the only efficient implementation given so far works just for bounded programs. This restricts the approach to bug- finding purposes. In this paper, we describe and evaluate a new lazy sequentialization translation that does not unwind loops and thus allows to analyze un- bounded computations, even with an unbounded number of context switches. In connection with an appropriate sequential backend verification tool it can thus also be used for the safety verification of concurrent programs, rather than just for bug-finding. The main technical novelty of our translation is the simulation of the thread resumption in a way that does not use gotos and thus does not re- quire that each statement is executed at most once. We have implemented this translation in the UL-CSeq tool for C99 programs that use the pthreads API. We evaluate UL-CSeq on several benchmarks, using different sequential verification backends on the sequentialized program, and show that it is more effective than previous approaches in proving the correctness of the safe benchmarks, and still remains competitive with state-of-the-art approaches for finding bugs in the un- safe benchmarks.
Conference or Workshop Item
|Venue - Dates:
||14th International Symposium on Automated Technology for Verification and Analysis (ATVA), Japan, 2016-10-17 - 2016-10-19
||Electronic & Software Systems
|17 June 2016||Accepted/In Press|
||18 Jun 2016 00:41
||10 Mar 2017 11:09
|Further Information:||Google Scholar|
Actions (login required)