In this paper we present an approach, based on data flow analysis, that can provide cost-effective analysis of concurrent programs with respect to explicitly stated correctness properties. Using this approach, a developer specifies a property of a concurrent program as a pattern of selected program events and asks the analysis to verify that all or no program executions satisfy the given property. We have developed a family of polynomial-time, conservative data flow analysis algorithms that support reasoning about these questions. To overcome the traditional inaccuracies of static analysis, we have also developed a range of techniques for improving the accuracy of the analysis results. One strength of our approach is the flexibility allowed in choosing and combining these techniques so as to increase accuracy without making analysis time impractical. We have implemented a prototype toolset that automates the analysis for programs with explicit tasking and rendezvous style communication. We present preliminary experimental results using this toolset. [Appears in "Proceedings of the Second ACM SIGSOFT Symposium on Foundations of Software Engineering, New Orleans LA, December 1994, pp. 62-75.]
Cited By
- Wilcox J, Flanagan C and Freund S VerifiedFT Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, (354-367)
- Wilcox J, Flanagan C and Freund S (2018). VerifiedFT, ACM SIGPLAN Notices, 53:1, (354-367), Online publication date: 23-Mar-2018.
- Rhodes D, Flanagan C and Freund S BigFoot: static check placement for dynamic race detection Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, (141-156)
- Rhodes D, Flanagan C and Freund S (2017). BigFoot: static check placement for dynamic race detection, ACM SIGPLAN Notices, 52:6, (141-156), Online publication date: 14-Sep-2017.
- Flanagan C and Freund S FastTrack Proceedings of the 30th ACM SIGPLAN Conference on Programming Language Design and Implementation, (121-133)
- Flanagan C and Freund S (2009). FastTrack, ACM SIGPLAN Notices, 44:6, (121-133), Online publication date: 28-May-2009.
- Flanagan C and Freund S (2008). Atomizer, Science of Computer Programming, 71:2, (89-109), Online publication date: 1-Apr-2008.
- Flanagan C and Freund S (2007). Type inference against races, Science of Computer Programming, 64:1, (140-165), Online publication date: 1-Jan-2007.
- Abadi M, Flanagan C and Freund S (2006). Types for safe locking, ACM Transactions on Programming Languages and Systems, 28:2, (207-255), Online publication date: 1-Mar-2006.
Recommendations
Data flow analysis for verifying properties of concurrent programs
SIGSOFT '94: Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineeringIn this paper we present an approach, based on data flow analysis, that can provide cost-effective analysis of concurrent programs with respect to explicitly stated correctness properties. Using this approach, a developer specifies a property of a ...
Data flow analysis for verifying properties of concurrent programs
In this paper we present an approach, based on data flow analysis, that can provide cost-effective analysis of concurrent programs with respect to explicitly stated correctness properties. Using this approach, a developer specifies a property of a ...