ACM Home Page
Please provide us with feedback. Feedback
Dataflow analysis for concurrent programs using datarace detection
Full text PdfPdf (332 KB)
Source
Conference on Programming Language Design and Implementation archive
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation table of contents
Tucson, AZ, USA
SESSION: Session X table of contents
Pages 316-326  
Year of Publication: 2008
ISBN:978-1-59593-860-2
Also published in ...
Authors
Ravi Chugh  University of California, San Diego, La Jolla, CA, USA
Jan W. Voung  University of California, San Diego, La Jolla, CA, USA
Ranjit Jhala  University of California, San Diego, La Jolla, CA, USA
Sorin Lerner  University of California, San Diego, La Jolla, CA, USA
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 16,   Downloads (12 Months): 185,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1375581.1375620
What is a DOI?

ABSTRACT

Dataflow analyses for concurrent programs differ from their single-threaded counterparts in that they must account for shared memory locations being overwritten by concurrent threads. Existing dataflow analysis techniques for concurrent programs typically fall at either end of a spectrum: at one end, the analysis conservatively kills facts about all data that might possibly be shared by multiple threads; at the other end, a precise thread-interleaving analysis determines which data may be shared, and thus which dataflow facts must be invalidated. The former approach can suffer from imprecision, whereas the latter does not scale.

We present RADAR, a framework that automatically converts a dataflow analysis for sequential programs into one that is correct for concurrent programs. RADAR uses a race detection engine to kill the dataflow facts, generated and propagated by the sequential analysis, that become invalid due to concurrent writes. Our approach of factoring all reasoning about concurrency into a race detection engine yields two benefits. First, to obtain analyses for code using new concurrency constructs, one need only design a suitable race detection engine for the constructs. Second, it gives analysis designers an easy way to tune the scalability and precision of the overall analysis by only modifying the race detection engine. We describe the RADAR framework and its implementation using a pre-existing race detection engine. We show how RADAR was used to generate a concurrent version of a null-pointer dereference analysis, and we analyze the result of running the generated concurrent analysis on several benchmarks.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
J. M. Cobleigh, L. A. Clarke, and L. J. Osterweil. FLAVERS: A finite state verification technique for software systems. IBM Systems Journal, 41(1):140--165, 2002.
3
4
5
6
 
7
C. Flanagan and S. Qadeer. Thread-modular model checking. In SPIN, LNCS 2648, pages 213--224. Springer, 2003.
8
9
10
11
12
13
 
14
15
16
17
18
 
19
S. Owicki and D. Gries. An axiomatic proof technique for parallel programs. Acta Informatica, 6(4):319--340, 1976.
20
21
22
23
 
24
25
26
27
28
29

Collaborative Colleagues:
Ravi Chugh: colleagues
Jan W. Voung: colleagues
Ranjit Jhala: colleagues
Sorin Lerner: colleagues