Separating computation from communication:
a design approach for concurrent program verification
Separating computation from communication:
a design approach for concurrent program verification
We describe an approach to design static analysis and verification tools for concurrent programs that separates intra-thread computation from inter-thread communication by means of a shared memory abstraction (SMA). We formally characterize the concept of thread-asynchronous transition systems that underpins our approach and that allows us to design tools as two independent components, the intra-thread analysis, which can be optimized separately, and the implementation of the SMA itself, which can be exchanged easily (e.g., from the SC to the TSO memory model). We describe the SMA’s API and show that several concurrent verification techniques from the literature can easily be recast in our setting and thus be extended to weak memory models. We give SMA implementations for the SC, TSO, and PSO memory models that are based on the idea of individual memory unwindings. We instantiate our approach by developing a new, efficient BMC-based bug finding tool for multi-threaded C programs under SC, TSO, or PSO based on these SMAs, and show experimentally that it is competitive to existing tools.
University of Southampton
Tomasco, Ermenegildo
7b944585-0193-4dab-861b-8d5cdccf82cd
Nguyen Lam, Truc
0a373da7-0868-466d-a3b8-060868037acc
Fischer, Bernd
0c9575e6-d099-47f1-b3a2-2dbc93c53d18
La Torre, Salvatore
ec51ffc2-65d9-414e-9dd2-f5f342979c10
Parlato, Gennaro
c28428a0-d3f3-4551-a4b5-b79e410f4923
April 2016
Tomasco, Ermenegildo
7b944585-0193-4dab-861b-8d5cdccf82cd
Nguyen Lam, Truc
0a373da7-0868-466d-a3b8-060868037acc
Fischer, Bernd
0c9575e6-d099-47f1-b3a2-2dbc93c53d18
La Torre, Salvatore
ec51ffc2-65d9-414e-9dd2-f5f342979c10
Parlato, Gennaro
c28428a0-d3f3-4551-a4b5-b79e410f4923
Tomasco, Ermenegildo, Nguyen Lam, Truc, Fischer, Bernd, La Torre, Salvatore and Parlato, Gennaro
(2016)
Separating computation from communication:
a design approach for concurrent program verification
Southampton, GB.
University of Southampton
31pp.
Record type:
Monograph
(Project Report)
Abstract
We describe an approach to design static analysis and verification tools for concurrent programs that separates intra-thread computation from inter-thread communication by means of a shared memory abstraction (SMA). We formally characterize the concept of thread-asynchronous transition systems that underpins our approach and that allows us to design tools as two independent components, the intra-thread analysis, which can be optimized separately, and the implementation of the SMA itself, which can be exchanged easily (e.g., from the SC to the TSO memory model). We describe the SMA’s API and show that several concurrent verification techniques from the literature can easily be recast in our setting and thus be extended to weak memory models. We give SMA implementations for the SC, TSO, and PSO memory models that are based on the idea of individual memory unwindings. We instantiate our approach by developing a new, efficient BMC-based bug finding tool for multi-threaded C programs under SC, TSO, or PSO based on these SMAs, and show experimentally that it is competitive to existing tools.
Text
IdividualMU.pdf
- Other
More information
Published date: April 2016
Organisations:
Electronic & Software Systems
Identifiers
Local EPrints ID: 397905
URI: http://eprints.soton.ac.uk/id/eprint/397905
PURE UUID: 9c7ddca8-6c41-432f-b90b-49611451946d
Catalogue record
Date deposited: 09 Jul 2016 16:21
Last modified: 15 Mar 2024 01:24
Export record
Contributors
Author:
Ermenegildo Tomasco
Author:
Truc Nguyen Lam
Author:
Bernd Fischer
Author:
Salvatore La Torre
Author:
Gennaro Parlato
Download statistics
Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.
View more statistics