skip to main content
10.1145/1926385.1926391acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

Learning minimal abstractions

Published:26 January 2011Publication History

ABSTRACT

Static analyses are generally parametrized by an abstraction which is chosen from a family of abstractions. We are interested in flexible families of abstractions with many parameters, as these families can allow one to increase precision in ways tailored to the client without sacrificing scalability. For example, we consider k-limited points-to analyses where each call site and allocation site in a program can have a different k value. We then ask a natural question in this paper: What is the minimal (coarsest) abstraction in a given family which is able to prove a set of queries? In addressing this question, we make the following two contributions: (i) We introduce two machine learning algorithms for efficiently finding a minimal abstraction; and (ii) for a static race detector backed by a k-limited points-to analysis, we show empirically that minimal abstractions are actually quite coarse: It suffices to provide context/object sensitivity to a very small fraction (0.4-2.3%) of the sites to yield equally precise results as providing context/object sensitivity uniformly to all sites.

Skip Supplemental Material Section

Supplemental Material

5-mpeg-4.mp4

mp4

392.7 MB

References

  1. D. Angluin. Queries and concept learning. Machine Learning, 2(4):319--342, 1988. Google ScholarGoogle ScholarCross RefCross Ref
  2. T. Ball and S. Rajamani. The SLAM project: debugging system software via static analysis. In Proceedings of ACM Symp. on Principles of Programming Languages (POPL), pages 1--3, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. T. Ball, R. Majumdar, T. Millstein, and S. Rajamani. Automatic predicate abstraction of C programs. In Proceedings of ACM Conf. on Programming Language Design and Imple-mentation (PLDI), pages 203--213, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. D. Donoho. Compressed sensing. IEEE Trans. on Information Theory, 52(4):1289--1306, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. S. Graf and H. Saidi. Construction of abstract state graphs with PVS. pages 72--83, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. S. Gulwani. Program Analysis using Random Interpretation. PhD thesis, University of California, Berkeley, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. S. Guyer and C. Lin. Client-driven pointer analysis. In Proceedings of Intl. Static Analysis Symposium, pages 214--236, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. D. Hamlet. Random testing. In Encyclopedia of Software Engineering, pages 970--978, 1994.Google ScholarGoogle Scholar
  9. N. Heintze and O. Tardieu. Demand-driven pointer analysis. In Proceedings of ACM Conf. on Programming Language Design and Implementation (PLDI), pages 24--34, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. O. Lhoták and L. Hendren. Context-sensitive points-to analysis: is it worth it? In Proceedings of Intl. Conf. on Compiler Construction, pages 47--64, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. O. Lhoták and L. Hendren. Evaluating the benefits of context-sensitive points-to analysis using a BDD-based implemen-tation. ACM Transactions on Software Engineering and Methodology, 18(1):1--53, 2008. 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 Proceedings of ACM Intl. Symp. on Software Testing and Analysis, 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 Proceedings of ACM Conf. on Programming Language Design and Implementation (PLDI), pages 308--319. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. Plevyak and A. Chien. Precise concrete type inference for object-oriented languages. In Proceedings of ACM Conf. on Object-Oriented Programming, Systems, Languages, and Applications, pages 324--340. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. T. W. Reps. Demand interprocedural program analysis using logic databases. In Workshop on Programming with Logic Databases, pages 163--196, 1993.Google ScholarGoogle Scholar
  17. T. W. Reps. Solving demand versions of interprocedural analysis problems. In Proceedings of Intl. Conf. on Compiler Construction, pages 389--403, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. H. Robbins and S. Monro. A stochastic approximation method. Annals of Mathematical Statistics, 22(3):400--407, 1951.Google ScholarGoogle ScholarCross RefCross Ref
  19. M. Sagiv, T. W. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. ACM Transactions on Programming Languages and Systems, 24(3):217--298, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. O. Shivers. Control-flow analysis in Scheme. In Proceedings of ACM Conf. on Programming Language Design and Imple-mentation (PLDI), pages 164--174, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. Sridharan and R. Bodík. Refinement-based context-sensitive points-to analysis for Java. In Proceedings of ACM Conf. on Programming Language Design and Implementation, pages 387--400, 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 ACM Conf. on Object-Oriented Programming, Systems, Languages, and Applications, pages 59--76, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. L. Valiant. A theory of the learnable. Communications of the ACM, 27(11):1134--1142, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. M. J. Wainwright. Sharp thresholds for noisy and high-dimensional recovery of sparsity using '1-constrained quadratic programming (lasso). IEEE Transactions on Information Theory, 55:2183--2202, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. J. Whaley. Context-Sensitive Pointer Analysis using Binary Decision Diagrams. PhD thesis, Stanford University, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. J. Whaley and M. Lam. Cloning-based context-sensitive pointer alias analysis using binary decision diagrams. In Proceedings of ACM Conf. on Programming Language Design and Implementation (PLDI), pages 131--144, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. X. Zheng and R. Rugina. Demand-driven alias analysis for C. In Proceedings of ACM Symp. on Principles of Programming Languages (POPL), pages 197--208, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Learning minimal abstractions

            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
              POPL '11: Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
              January 2011
              652 pages
              ISBN:9781450304900
              DOI:10.1145/1926385
              • cover image ACM SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 46, Issue 1
                POPL '11
                January 2011
                624 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/1925844
                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: 26 January 2011

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

              Acceptance Rates

              Overall Acceptance Rate824of4,130submissions,20%

              Upcoming Conference

              POPL '25

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader