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 by utilizing modern linear programming solvers that can quickly solve large linear programming instances. This paper reports on the formal properties of the analysis and the experience with applying an implementation to real world C programs.
- GNU Linear Programming Kit. http://www.gnu.org/software/glpk/glpk.html.]]Google Scholar
- R. Agarwal and S. D. Stoller. Type inference for parameterized race-free Java. In Verification, Model Checking, and Abstract Interpretation, 5th International Conference, VMCAI 2004, Proceedings, pages 149--160.]]Google Scholar
- R. Bornat, C. Calcagno, P. W. O'Hearn, and M. J. Parkinson. Permission accounting in separation logic. In Proceedings of the 32nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 259--270, Long Beach, California, Jan. 2005.]] Google Scholar
Digital Library
- C. Boyapati, A. Salcianu, W. Beebee, Jr., and M. Rinard. Ownership types for safe region-based memory management in real-time Java. In Proceedings of the 2003 ACM SIGPLAN Conference on Programming Language Design and Implementation, San Diego, California, June 2003.]] Google Scholar
Digital Library
- J. Boyland. Checking interference with fractional permissions. In Static Analysis, Tenth International Symposium, pages 55--72, San Diego, CA, June 2003.]] Google Scholar
Digital Library
- M. Das. Unification-based pointer analysis with directional assignments. In Proceedings of the 2000 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 35--46, Vancouver B.C., Canada, June 2000.]] Google Scholar
Digital Library
- M. Das, B. Liblit, M. Fähndrich, and J. Rehof. Estimating the impact of scalable pointer analysis on optimization. In Static Analysis, Eighth International Symposium, pages 260--278, Paris, France, July 2001.]] Google Scholar
Digital Library
- M. F\"ahndrich, J. Rehof, and M. Das. Scalable context-sensitive flow analysis using instantiation constraints. In Proceedings of the 2000 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 253--263, Vancouver B.C., Canada, June 2000.]] Google Scholar
Digital Library
- C. Flanagan and M. Abadi. Types for safe locking. In D. Swierstra, editor, 8th European Symposium on Programming, volume 1576 of Lecture Notes in Computer Science, pages 91--108, Amsterdam, The Netherlands, Mar. 1999. Springer-Verlag.]] Google Scholar
Digital Library
- C. Flanagan and S. N. Freund. Type-based race detection for Java. In Proceedings of the 2000 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 219--232, Vancouver B.C., Canada, June 2000.]] Google Scholar
Digital Library
- C. Flanagan and S. N. Freund. Type inference against races. In Static Analysis, Eleventh International Symposium, pages 116--132, Verona, Italy, August 2004.]]Google Scholar
- J. S. Foster, T. Terauchi, and A. Aiken. Flow-sensitive type qualifiers. In Proceedings of the 2002 ACM SIGPLAN Conference on Programming Language Design and Implementation, Berlin, Germany, June 2002.]] Google Scholar
Digital Library
- D. Grossman. Type-safe multithreading in Cyclone. In Proceedings of the 2003 ACM Workshop on Types in Language Design and Implementation, pages 13--25, New Orleans, Louisiana, Jan. 2003.]] Google Scholar
Digital Library
- J. Kodumal and A. Aiken. The set constraint/cfl reachability connection in practice. In Proceedings of the 2004 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 207--218, Washington DC, USA, June 2004.]] Google Scholar
Digital Library
- S. Mimram. ocaml-glpk. http://ocaml-glpk.sourceforge.net/.]]Google Scholar
- H. Mittelmann. Benchmarks for optimization software. http://plato.asu.edu/bench.html.]]Google Scholar
- M. Naik and A. Aiken. Conditional must not aliasing for static race detection. In Proceedings of the 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 327--338, Nice, France, Jan. 2007.]] Google Scholar
Digital Library
- M. Naik, A. Aiken, and J. Whaley. Effective static race detection for Java. In Proceedings of the 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 308--319, Ottawa, Ontario, Canada, June 2006.]] Google Scholar
Digital Library
- G. C. Necula, S. McPeak, S. P. Rahul, and W. Weimer. CIL: Intermediate language and tools for analysis and transformation of c programs. In Compiler Construction, 11th International Conference, pages 213--228, Grenoble, France, Apr. 2002.]] Google Scholar
Digital Library
- P. Pratikakis, J. S. Foster, and M. W. Hicks. LOCKSMITH: context-sensitive correlation analysis for race detection. In Proceedings of the 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 320--331, Ottawa, Ontario, Canada, June 2006.]] Google Scholar
Digital Library
- T. Terauchi and A. Aiken. A capability calculus for concurrency and determinism. In Concurrency Theory, 17th International Conference, volume 4137, pages 218--232, Bonn, Germany, Aug. 2006.]] Google Scholar
Digital Library
- J. W. Voung, R. Jhala, and S. Lerner. RELAY: static race detection on millions of lines of code. In Proceedings of the 6th joint meeting of the European Software Engineering Conference and the ACM SIGSOFT International Symposium on Foundations of Software Engineering, pages 205--214, Dubrovnik, Croatia, Sept. 2007.]] Google Scholar
Digital Library
- J. Whaley and M. S. Lam. Cloning-based context-sensitive pointer alias analysis using binary decision diagrams. In Proceedings of the 2004 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 131--144, Washington DC, USA, June 2004.]] Google Scholar
Digital Library
Index Terms
Checking race freedom via linear programming
Recommendations
Checking race freedom via linear programming
PLDI '08: Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and ImplementationWe 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 ...
Transformation of a multi-choice linear programming problem
The aim of this paper is to transform a multi-choice linear programming problem to a standard mathematical programming problem where the right hand side goals of some constraints are 'multi-choice' in nature. For each of the constraint there may exist ...
Safe bounds in linear and mixed-integer linear programming
Current mixed-integer linear programming solvers are based on linear programming routines that use floating-point arithmetic. Occasionally, this leads to wrong solutions, even for problems where all coefficients and all solution components are small ...







Comments