skip to main content
research-article

Finding optimum abstractions in parametric dataflow analysis

Authors Info & Claims
Published:16 June 2013Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. P. Cousot and R. Cousot. Refining model checking by abstract interpretation. Autom. Softw. Eng., 6(1):69--95, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. S. Guyer and C. Lin. Client-driven pointer analysis. In Proceedings of the 10th International Symposium on Static Analysis (SAS'03), 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. M. Naik. Chord: A static and dynamic program analysis platform for Java. http://code.google.com/p/jchord/.Google ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Finding optimum abstractions in parametric dataflow analysis

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in

                Full Access

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader
                About Cookies On This Site

                We use cookies to ensure that we give you the best experience on our website.

                Learn more

                Got it!