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

Scaling abstraction refinement via pruning

Published:04 June 2011Publication History

ABSTRACT

Many static analyses do not scale as they are made more precise. For example, increasing the amount of context sensitivity in a k-limited pointer analysis causes the number of contexts to grow exponentially with k. Iterative refinement techniques can mitigate this growth by starting with a coarse abstraction and only refining parts of the abstraction that are deemed relevant with respect to a given client.

In this paper, we introduce a new technique called pruning that uses client feedback in a different way. The basic idea is to use coarse abstractions to prune away parts of the program analysis deemed irrelevant for proving a client query, and then using finer abstractions on the sliced program analysis. For a k-limited pointer analysis, this approach amounts to adaptively refining and pruning a set of prefix patterns representing the contexts relevant for the client. By pruning, we are able to scale up to much more expensive abstractions than before. We also prove that the pruned analysis is both sound and complete, that is, it yields the same results as an analysis that uses a more expensive abstraction directly without pruning.

References

  1. T. Ball, R. Majumdar, T. Millstein, and S. Rajamani. Automatic predicate abstraction of C programs. In PLDI, pages 203--213, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. M. Bravenboer and Y. Smaragdakis. Strictly declarative specification of sophisticated points-to analyses. In OOPSLA, pages 243--262, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. S. Graf and H. Saidi. Construction of abstract state graphs with PVS. Computer Aided Verification, 1254: 72--83, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. Guyer and C. Lin. Client-driven pointer analysis. In SAS, pages 214--236, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. N. Heintze and O. Tardieu. Demand-driven pointer analysis. In PLDI, pages 24--34, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. T. A. Henzinger, R. Jhala, R. Majumdar, and G. Sutre. Lazy abstraction. In POPL, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. O. Lhoták and L. Hendren. Context-sensitive points-to analysis: is it worth it? In CC, pages 47--64, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. O. Lhoták and L. Hendren. Evaluating the benefits of context-sensitive points-to analysis using a BDD-based implementation. ACM Transactions on Software Engineering and Methodology, 18 (1): 1--53, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. P. Liang, O. Tripp, M. Naik, and M. Sagiv. A dynamic evaluation of static heap abstractions. In OOPSLA, pages 411--427, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. P. Liang, O. Tripp, and M. Naik. Learning minimal abstractions. In POPL, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. K. McMillan. Lazy abstraction with interpolants. In CAV, pages 123--136, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. A. Milanova, A. Rountev, and B. Ryder. Parameterized object sensitivity for points-to and side-effect analyses for Java. In ISSTA, pages 1--11, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. A. Milanova, A. Rountev, and B. Ryder. Parameterized object sensitivity for points-to analysis for Java. ACM Transactions on Software Engineering and Methodology, 14 (1): 1--41, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. M. Naik, A. Aiken, and J. Whaley. Effective static race detection for Java. In PLDI, pages 308--319, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. Plevyak and A. Chien. Precise concrete type inference for object-oriented languages. In OOPSLA, pages 324--340. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. O. Shivers. Control-flow analysis in Scheme. In PLDI, pages 164--174, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Y. Smaragdakis, M. Bravenboer, and O. Lhotak. Pick your contexts well: Understanding object-sensitivity. In POPL, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. S. A. Spoon and O. Shivers. Demand-driven type inference with subgoal pruning: Trading precision for scalability. In ECOOP, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  19. M. Sridharan and R. Bodík. Refinement-based context-sensitive points-to analysis for Java. In PLDI, pages 387--400, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. V. Vipindeep and P. Jalote. Efficient static analysis with path pruning using coverage data. In International Workshop on Dynamic Analysis (WODA), 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. J. Whaley. Context-Sensitive Pointer Analysis using Binary Decision Diagrams. PhD thesis, Stanford University, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. J. Whaley and M. Lam. Cloning-based context-sensitive pointer alias analysis using binary decision diagrams. In PLDI, pages 131--144, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. X. Zheng and R. Rugina. Demand-driven alias analysis for C. In POPL, pages 197--208, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Scaling abstraction refinement via pruning

            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 '11: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation
              June 2011
              668 pages
              ISBN:9781450306638
              DOI:10.1145/1993498
              • General Chair:
              • Mary Hall,
              • Program Chair:
              • David Padua
              • cover image ACM SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 46, Issue 6
                PLDI '11
                June 2011
                652 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/1993316
                Issue’s Table of Contents

              Copyright © 2011 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 ACM 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: 4 June 2011

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

              Acceptance Rates

              Overall Acceptance Rate406of2,067submissions,20%

              Upcoming Conference

              PLDI '24

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader