skip to main content
research-article

Learning minimal abstractions

Published:26 January 2011Publication History
Skip Abstract Section

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

References

  1. D. Angluin. Queries and concept learning. Machine Learning, 2(4):319--342, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  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 Scholar
  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

            Full Access

            • Published in

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

              Copyright © 2011 ACM

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 26 January 2011

              Check for updates

              Qualifiers

              • research-article

            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!