2008
DOI: 10.1145/1379022.1375583
|View full text |Cite
|
Sign up to set email alerts
|

Checking race freedom via linear programming

Abstract: We present a new static analysis for race freedom and race detection. The analysis checks race freedom by reducing the problem to (rational) linear programming. Unlike conventional static analyses for race freedom or race detection, our analysis avoids explicit computation of locksets and lock linearity/must-aliasness. Our analysis can handle a variety of synchronization idioms that more conventional approaches often have difficulties with, such as thread joining, semaphores, and signals. We achieve efficiency… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
5

Citation Types

0
8
0

Year Published

2009
2009
2014
2014

Publication Types

Select...
5

Relationship

0
5

Authors

Journals

citations
Cited by 10 publications
(8 citation statements)
references
References 21 publications
0
8
0
Order By: Relevance
“…He extended input/output modes to capabilities ranging over [−1, 1], and used them to guarantee that there is no leakage of memory cells for storing constructors. Our type system actually seems closer to his system than to other later fractional capability systems [1,12,13]. In particular, his system assigns a capability (or, an ownership in our terminology) to each node reachable from a variable (just as our type system assigns an ownership to each pointer reachable from a variable), and the unification constraint X = Y between variables plays a role similar to our assert commands.…”
Section: Related Workmentioning
confidence: 91%
See 2 more Smart Citations
“…He extended input/output modes to capabilities ranging over [−1, 1], and used them to guarantee that there is no leakage of memory cells for storing constructors. Our type system actually seems closer to his system than to other later fractional capability systems [1,12,13]. In particular, his system assigns a capability (or, an ownership in our terminology) to each node reachable from a variable (just as our type system assigns an ownership to each pointer reachable from a variable), and the unification constraint X = Y between variables plays a role similar to our assert commands.…”
Section: Related Workmentioning
confidence: 91%
“…Other potential advantages of our type-based approach are: (i) By allowing programmers to declare ownership types, they may serve as good specifications of functions or modules, and also enhance modular verification, (ii) Our approach can probably be extended to deal with multi-threaded programs, along the line of previous work using fractional capabilities [1,12,13], and (iii) There is a clear proof of soundness of the analysis, based on a standard technique for proving type soundness (see the longer version [4]). A main limitation of our approach is that our type system cannot properly handle cycles (recall the discussion in Section 4) and value-dependent (or, path-sensitive) behaviors.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Besides that, our analysis can handle re-entrant locks, which are common in object-oriented languages such as Java or C , whereas [15] covers only binary locks. The same restriction applies to [16], which represents a type system assuring race-freedom. Gerakios et.al.…”
Section: Related Workmentioning
confidence: 99%
“…The idea of using rational numbers in type systems goes back to the work of Boyland [17], and has been extensively studied by Terauchi [18][19][20].…”
Section: Related Workmentioning
confidence: 99%