Abstract
We propose a technique to efficiently search a large family of abstractions in order to prove a query using a parametric dataflow analysis. Our technique either finds the cheapest such abstraction or shows that none exists. It is based on counterexample-guided abstraction refinement but applies a novel meta-analysis on abstract counterexample traces to efficiently find abstractions that are incapable of proving the query. We formalize the technique in a generic framework and apply it to two analyses: a type-state analysis and a thread-escape analysis. We demonstrate the effectiveness of the technique on a suite of Java benchmark programs.
- T. Ball and S. Rajamani. Bebop: a path-sensitive interprocedural dataflow engine. In Proceedings of the ACM Workshop on Program Analysis For Software Tools and Engineering (PASTE'01), 2001. Google Scholar
Digital Library
- T. Ball and S. Rajamani. The SLAM project: Debugging system software via static analysis. In Proceedings of the 29th ACM Symposium on Principles of Programming Languages (POPL'02), 2002. Google Scholar
Digital Library
- N. Beckman, A. Nori, S. Rajamani, R. Simmons, S. Tetali, and A. Thakur. Proofs from tests. IEEE Trans. Software Eng., 36(4):495--508, 2010. Google Scholar
Digital Library
- P. Cousot and R. Cousot. Refining model checking by abstract interpretation. Autom. Softw. Eng., 6(1):69--95, 1999. Google Scholar
Digital Library
- I. Dillig, T. Dillig, and A. Aiken. Sound, complete and scalable path-sensitive analysis. In Proceedings of the 29th ACM Conference on Programming Language Design and Implementation (PLDI'08),2008. Google Scholar
Digital Library
- I. Dillig, T. Dillig, and A. Aiken. Fluid updates: beyond strong vs. weak updates. In Proceedings of the 19th European Symposium on Programming (ESOP'10), 2010. Google Scholar
Digital Library
- S. Fink, E. Yahav, N. Dor, G. Ramalingam, and E. Geay. Effective typestate verification in the presence of aliasing. ACM Trans. Softw. Eng. Methodol., 17(2), 2008. Google Scholar
Digital Library
- B. Gulavani, T. Henzinger, Y. Kannan, A. Nori, and S. Rajamani. Synergy: a new algorithm for property checking. In Proceedings of the 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE'06), 2006. Google Scholar
Digital Library
- B. Gulavani, S. Chakraborty, A. Nori, and S. Rajamani. Automatically refining abstract interpretations. In Proceedings of the 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS'08), 2008. Google Scholar
Digital Library
- S. Gulwani and A. Tiwari. Assertion checking unified. In Proceedings of the 8th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI'07), 2007. Google Scholar
Digital Library
- S. Gulwani, B. McCloskey, and A. Tiwari. Lifting abstract interpreters to quantified logical domains. In Proceedings of the 35th ACM Symposium on Principles of Programming Language (POPL'08), 2008. Google Scholar
Digital Library
- S. Guyer and C. Lin. Client-driven pointer analysis. In Proceedings of the 10th International Symposium on Static Analysis (SAS'03), 2003. Google Scholar
Digital Library
- T. Henzinger, R. Jhala, R. Majumdar, and K. McMillan. Abstractions from proofs. In Proceedings of the 31st ACM Symposium on Principles of Programming Languages (POPL'04), 2004. Google Scholar
Digital Library
- P. Liang and M. Naik. Scaling abstraction refinement via pruning. In Proceedings of the 32nd ACM Conference on Programming Language Design and Implementation (PLDI'11), 2011. Google Scholar
Digital Library
- P. Liang, O. Tripp, and M. Naik. Learning minimal abstractions. In Proceedings of the 38th ACM Symposium on Principles of Programming Languages (POPL'11), 2011. Google Scholar
Digital Library
- M. Naik. Chord: A static and dynamic program analysis platform for Java. http://code.google.com/p/jchord/.Google Scholar
- M. Naik, H. Yang, G. Castelnuovo, and M. Sagiv. Abstractions from tests. In Proceedings of the 39th ACM Symposium on Principles of Programming Languages (POPL'12), 2012. Google Scholar
Digital Library
- J. Plevyak and A. Chien. Precise concrete type inference for objectoriented languages. In Proceedings of the 9th ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'94), 1994. Google Scholar
Digital Library
- T. Reps, S. Horwitz, and M. Sagiv. Precise interprocedural dataflow analysis via graph reachability. In Proceedings of the 22nd ACM Symposium on Principles of Programming Languages (POPL'95), 1995. Google Scholar
Digital Library
- T. Reps, S. Schwoon, S. Jha, and D. Melski. Weighted pushdown systems and their application to interprocedural dataflow analysis. Sci. Comput. Program., 58(1-2):206--263, 2005. Google Scholar
Digital Library
- M. Sridharan and R. Bodík. Refinement-based context-sensitive points-to analysis for Java. In Proceedings of the 27th ACM Conference on Programming Language Design and Implementation (PLDI'06), 2006. Google Scholar
Digital Library
- M. Sridharan, D. Gopan, L. Shan, and R. Bodík. Demand-driven points-to analysis for Java. In Proceedings of the 20th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'05), 2005. Google Scholar
Digital Library
- X. Zhang, M. Naik, and H. Yang. Finding optimum abstractions in parametric dataflow analysis. Technical report, Georgia Institute of Technology, 2013. Available at http://pag.gatech.edu/pubs/pldi13.pdf. Google Scholar
Digital Library
Index Terms
Finding optimum abstractions in parametric dataflow analysis
Recommendations
Finding optimum abstractions in parametric dataflow analysis
PLDI '13: Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and ImplementationWe propose a technique to efficiently search a large family of abstractions in order to prove a query using a parametric dataflow analysis. Our technique either finds the cheapest such abstraction or shows that none exists. It is based on counterexample-...
An abstraction refinement approach combining precise and approximated techniques for efficient program verification: abstract for the invited talk
SAVCBS '09: Proceedings of the 8th international workshop on Specification and verification of component-based systemsPredicate abstraction is a powerful technique to reduce the state space of a program to a finite and affordable number of states. It produces a conservative over-approximation where concrete states are grouped together according to the predicates. Given ...
Compositional Abstraction Refinement for Timed Systems
TASE '10: Proceedings of the 2010 4th IEEE International Symposium on Theoretical Aspects of Software EngineeringModel checking suffers from the state explosion problem. Compositional abstraction and abstraction refinement have been investigated in many areas to address this problem. This paper considers the compositional model checking for timed systems. We ...







Comments