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

Learning minimal abstractions

Published: 26 January 2011 Publication 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.

Supplementary Material

MP4 File (5-mpeg-4.mp4)

References

[1]
D. Angluin. Queries and concept learning. Machine Learning, 2(4):319--342, 1988.
[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.
[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.
[4]
D. Donoho. Compressed sensing. IEEE Trans. on Information Theory, 52(4):1289--1306, 2006.
[5]
S. Graf and H. Saidi. Construction of abstract state graphs with PVS. pages 72--83, 1997.
[6]
S. Gulwani. Program Analysis using Random Interpretation. PhD thesis, University of California, Berkeley, 2005.
[7]
S. Guyer and C. Lin. Client-driven pointer analysis. In Proceedings of Intl. Static Analysis Symposium, pages 214--236, 2003.
[8]
D. Hamlet. Random testing. In Encyclopedia of Software Engineering, pages 970--978, 1994.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[16]
T. W. Reps. Demand interprocedural program analysis using logic databases. In Workshop on Programming with Logic Databases, pages 163--196, 1993.
[17]
T. W. Reps. Solving demand versions of interprocedural analysis problems. In Proceedings of Intl. Conf. on Compiler Construction, pages 389--403, 1994.
[18]
H. Robbins and S. Monro. A stochastic approximation method. Annals of Mathematical Statistics, 22(3):400--407, 1951.
[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.
[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.
[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.
[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.
[23]
L. Valiant. A theory of the learnable. Communications of the ACM, 27(11):1134--1142, 1984.
[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.
[25]
J. Whaley. Context-Sensitive Pointer Analysis using Binary Decision Diagrams. PhD thesis, Stanford University, 2007.
[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.
[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.

Cited By

View all
  • (2024)TROVEProceedings of the 41st International Conference on Machine Learning10.5555/3692070.3694168(51177-51191)Online publication date: 21-Jul-2024
  • (2024)Learning Abstraction Selection for Bayesian Program AnalysisProceedings of the ACM on Programming Languages10.1145/36498458:OOPSLA1(954-982)Online publication date: 29-Apr-2024
  • (2024)Trace Partitioning as an Optimization ProblemStatic Analysis10.1007/978-3-031-74776-2_2(26-60)Online publication date: 20-Oct-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 January 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrency
  2. heap abstractions
  3. machine learning
  4. randomization
  5. static analysis

Qualifiers

  • Research-article

Conference

POPL '11
Sponsor:

Acceptance Rates

Overall Acceptance Rate 860 of 4,328 submissions, 20%

Upcoming Conference

POPL '26

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)11
  • Downloads (Last 6 weeks)1
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)TROVEProceedings of the 41st International Conference on Machine Learning10.5555/3692070.3694168(51177-51191)Online publication date: 21-Jul-2024
  • (2024)Learning Abstraction Selection for Bayesian Program AnalysisProceedings of the ACM on Programming Languages10.1145/36498458:OOPSLA1(954-982)Online publication date: 29-Apr-2024
  • (2024)Trace Partitioning as an Optimization ProblemStatic Analysis10.1007/978-3-031-74776-2_2(26-60)Online publication date: 20-Oct-2024
  • (2022)Return of CFA: call-site sensitivity can be superior to object sensitivity even for object-oriented programsProceedings of the ACM on Programming Languages10.1145/34987206:POPL(1-29)Online publication date: 12-Jan-2022
  • (2021)Probabilistic Delta debuggingProceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3468264.3468625(881-892)Online publication date: 20-Aug-2021
  • (2021)A Survey of Parametric Static AnalysisACM Computing Surveys10.1145/346445754:7(1-37)Online publication date: 18-Jul-2021
  • (2021)Beyond Multimedia AuthoringACM Computing Surveys10.1145/346442254:7(1-31)Online publication date: 18-Jul-2021
  • (2021)A Survey of Smart Contract Formal Specification and VerificationACM Computing Surveys10.1145/346442154:7(1-38)Online publication date: 18-Jul-2021
  • (2021)Topic Modeling Using Latent Dirichlet allocationACM Computing Surveys10.1145/346247854:7(1-35)Online publication date: 17-Sep-2021
  • (2021)Semantic Information Retrieval on Medical TextsACM Computing Surveys10.1145/346247654:7(1-38)Online publication date: 17-Sep-2021
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media