skip to main content
10.1145/2594291.2594327acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

On abstraction refinement for program analyses in Datalog

Published:09 June 2014Publication History

ABSTRACT

A central task for a program analysis concerns how to efficiently find a program abstraction that keeps only information relevant for proving properties of interest. We present a new approach for finding such abstractions for program analyses written in Datalog. Our approach is based on counterexample-guided abstraction refinement: when a Datalog analysis run fails using an abstraction, it seeks to generalize the cause of the failure to other abstractions, and pick a new abstraction that avoids a similar failure. Our solution uses a boolean satisfiability formulation that is general, complete, and optimal: it is independent of the Datalog solver, it generalizes the failure of an abstraction to as many other abstractions as possible, and it identifies the cheapest refined abstraction to try next. We show the performance of our approach on a pointer analysis and a typestate analysis, on eight real-world Java benchmark programs.

References

  1. T. Ball and S. Rajamani. The SLAM project: Debugging system software via static analysis. In POPL, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. T. Beyene, C. Popeea, and A. Rybalchenko. Solving existentially quantified Horn clauses. In CAV, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. A. Biere, A. Cimatti, E. Clarke, and Y. Zhu. Symbolic model checking without BDDs. In TACAS, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. N. Bjørner, K. McMillan, and A. Rybalchenko. On solving universally quantified Horn clauses. In SAS, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  5. M. Bravenboer and Y. Smaragdakis. Strictly declarative specification of sophisticated points-to analyses. In OOPSLA, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. S. Chaki, E. Clarke, A. Groce, S. Jha, and H. Veith. Modular verification of software components in C. In ICSE, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. E. Clarke, A. Gupta, J. Kukula, and O. Shrichman. SAT based abstraction-refinement using ILP and machine learning techniques. In CAV, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. E. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith. Counterexample-guided abstraction refinement for symbolic model checking. JACM, 50 (5), 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. S. Fink, E. Yahav, N. Dor, G. Ramalingam, and E. Geay. Effective typestate verification in the presence of aliasing. ACM TOSEM, 17(2), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. S. Grebenshchikov, A. Gupta, N. Lopes, C. Popeea, and A. Rybalchenko. HSF(C): A software verifier based on Horn clauses. In TACAS, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. T. Henzinger, R. Jhala, R. Majumdar, and K. McMillan. Abstractions from proofs. In POPL, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. K. Hoder, N. Bjørner, and L. de Moura. μZ - an efficient engine for fixed points with constraints. In CAV, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Janota. MiFuMax --- a literate MaxSat solver, 2013.Google ScholarGoogle Scholar
  14. B. Jaumard and B. Simeone. On the complexity of the maximum satisfiability problem for Horn formulas. IPL, 26(1):1--4, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. G. Kastrinis and Y. Smaragdakis. Hybrid context sensitivity for points-to analysis. In PLDI, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. O. Lhoták and L. Hendren. Jedd: a BDD-based relational extension of Java. In PLDI, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. P. Liang and M. Naik. Scaling abstraction refinement via pruning. In PLDI, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. V. Manquinho, J. M. Silva, and J. Planes. Algorithms for weighted boolean optimization. In SAT, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. A. Milanova, A. Rountev, and B. Ryder. Parameterized object sensitivity for points-to and side-effect analyses for Java. In ISSTA, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. J. Quielle and J. Sifakis. Specification and verification of concurrent systems in CESAR. In Proceedings of the 5th Intl. Symp. on Programming, 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. T. Reps, S. Horwitz, and M. Sagiv. Precise interprocedural dataflow analysis via graph reachability. In POPL, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Y. Smaragdakis and M. Bravenboer. Using Datalog for fast and easy program analysis. In Datalog 2.0 Workshop, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Y. Smaragdakis, M. Bravenboer, and O. Lhoták. Pick your contexts well: Understanding object-sensitivity. In POPL, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. J. Whaley and M. Lam. Cloning-based context-sensitive pointer alias analysis using binary decision diagrams. In PLDI, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. J. Whaley, D. Avots, M. Carbin, and M. Lam. Using Datalog with binary decision diagrams for program analysis. In APLAS, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. X. Zhang, M. Naik, and H. Yang. Finding optimum abstractions in parametric dataflow analysis. In PLDI, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. On abstraction refinement for program analyses in Datalog

            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
            • Published in

              cover image ACM Conferences
              PLDI '14: Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation
              June 2014
              619 pages
              ISBN:9781450327848
              DOI:10.1145/2594291
              • cover image ACM SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 49, Issue 6
                PLDI '14
                June 2014
                598 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/2666356
                • Editor:
                • Andy Gill
                Issue’s Table of Contents

              Copyright © 2014 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 9 June 2014

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

              Acceptance Rates

              PLDI '14 Paper Acceptance Rate52of287submissions,18%Overall Acceptance Rate294of1,576submissions,19%

              Upcoming Conference

              PLDI '24

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader