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

Finding optimum abstractions in parametric dataflow analysis

Published: 16 June 2013 Publication History

Abstract

We propose a technique to efficiently search a large family of abstractions in order to prove a query using a parametric dataflow analysis. Our technique either finds the cheapest such abstraction or shows that none exists. It is based on counterexample-guided abstraction refinement but applies a novel meta-analysis on abstract counterexample traces to efficiently find abstractions that are incapable of proving the query. We formalize the technique in a generic framework and apply it to two analyses: a type-state analysis and a thread-escape analysis. We demonstrate the effectiveness of the technique on a suite of Java benchmark programs.

References

[1]
T. Ball and S. Rajamani. Bebop: a path-sensitive interprocedural dataflow engine. In Proceedings of the ACM Workshop on Program Analysis For Software Tools and Engineering (PASTE'01), 2001.
[2]
T. Ball and S. Rajamani. The SLAM project: Debugging system software via static analysis. In Proceedings of the 29th ACM Symposium on Principles of Programming Languages (POPL'02), 2002.
[3]
N. Beckman, A. Nori, S. Rajamani, R. Simmons, S. Tetali, and A. Thakur. Proofs from tests. IEEE Trans. Software Eng., 36(4):495--508, 2010.
[4]
P. Cousot and R. Cousot. Refining model checking by abstract interpretation. Autom. Softw. Eng., 6(1):69--95, 1999.
[5]
I. Dillig, T. Dillig, and A. Aiken. Sound, complete and scalable path-sensitive analysis. In Proceedings of the 29th ACM Conference on Programming Language Design and Implementation (PLDI'08),2008.
[6]
I. Dillig, T. Dillig, and A. Aiken. Fluid updates: beyond strong vs. weak updates. In Proceedings of the 19th European Symposium on Programming (ESOP'10), 2010.
[7]
S. Fink, E. Yahav, N. Dor, G. Ramalingam, and E. Geay. Effective typestate verification in the presence of aliasing. ACM Trans. Softw. Eng. Methodol., 17(2), 2008.
[8]
B. Gulavani, T. Henzinger, Y. Kannan, A. Nori, and S. Rajamani. Synergy: a new algorithm for property checking. In Proceedings of the 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE'06), 2006.
[9]
B. Gulavani, S. Chakraborty, A. Nori, and S. Rajamani. Automatically refining abstract interpretations. In Proceedings of the 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS'08), 2008.
[10]
S. Gulwani and A. Tiwari. Assertion checking unified. In Proceedings of the 8th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI'07), 2007.
[11]
S. Gulwani, B. McCloskey, and A. Tiwari. Lifting abstract interpreters to quantified logical domains. In Proceedings of the 35th ACM Symposium on Principles of Programming Language (POPL'08), 2008.
[12]
S. Guyer and C. Lin. Client-driven pointer analysis. In Proceedings of the 10th International Symposium on Static Analysis (SAS'03), 2003.
[13]
T. Henzinger, R. Jhala, R. Majumdar, and K. McMillan. Abstractions from proofs. In Proceedings of the 31st ACM Symposium on Principles of Programming Languages (POPL'04), 2004.
[14]
P. Liang and M. Naik. Scaling abstraction refinement via pruning. In Proceedings of the 32nd ACM Conference on Programming Language Design and Implementation (PLDI'11), 2011.
[15]
P. Liang, O. Tripp, and M. Naik. Learning minimal abstractions. In Proceedings of the 38th ACM Symposium on Principles of Programming Languages (POPL'11), 2011.
[16]
M. Naik. Chord: A static and dynamic program analysis platform for Java. http://code.google.com/p/jchord/.
[17]
M. Naik, H. Yang, G. Castelnuovo, and M. Sagiv. Abstractions from tests. In Proceedings of the 39th ACM Symposium on Principles of Programming Languages (POPL'12), 2012.
[18]
J. Plevyak and A. Chien. Precise concrete type inference for objectoriented languages. In Proceedings of the 9th ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'94), 1994.
[19]
T. Reps, S. Horwitz, and M. Sagiv. Precise interprocedural dataflow analysis via graph reachability. In Proceedings of the 22nd ACM Symposium on Principles of Programming Languages (POPL'95), 1995.
[20]
T. Reps, S. Schwoon, S. Jha, and D. Melski. Weighted pushdown systems and their application to interprocedural dataflow analysis. Sci. Comput. Program., 58(1-2):206--263, 2005.
[21]
M. Sridharan and R. Bodík. Refinement-based context-sensitive points-to analysis for Java. In Proceedings of the 27th ACM Conference on Programming Language Design and Implementation (PLDI'06), 2006.
[22]
M. Sridharan, D. Gopan, L. Shan, and R. Bodík. Demand-driven points-to analysis for Java. In Proceedings of the 20th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'05), 2005.
[23]
X. Zhang, M. Naik, and H. Yang. Finding optimum abstractions in parametric dataflow analysis. Technical report, Georgia Institute of Technology, 2013. Available at http://pag.gatech.edu/pubs/pldi13.pdf.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PLDI '13: Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation
June 2013
546 pages
ISBN:9781450320146
DOI:10.1145/2491956
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 48, Issue 6
    PLDI '13
    June 2013
    515 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2499370
    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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 16 June 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. CEGAR
  2. abstraction refinement
  3. dataflow analysis
  4. impossibility
  5. optimum abstraction
  6. under-approximation

Qualifiers

  • Research-article

Conference

PLDI '13
Sponsor:

Acceptance Rates

PLDI '13 Paper Acceptance Rate 46 of 267 submissions, 17%;
Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)10
  • Downloads (Last 6 weeks)1
Reflects downloads up to 28 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (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
  • (2021)A Survey of Parametric Static AnalysisACM Computing Surveys10.1145/346445754:7(1-37)Online publication date: 18-Jul-2021
  • (2020)Learning graph-based heuristics for pointer analysis without handcrafting application-specific featuresProceedings of the ACM on Programming Languages10.1145/34282474:OOPSLA(1-30)Online publication date: 13-Nov-2020
  • (2019)Higher-order Demand-driven Program AnalysisACM Transactions on Programming Languages and Systems10.1145/331034041:3(1-53)Online publication date: 2-Jul-2019
  • (2019)Finding suitable variability abstractions for lifted analysisFormal Aspects of Computing10.1007/s00165-019-00479-y31:2(231-259)Online publication date: 1-Apr-2019
  • (2018)Adaptive Static Analysis via Learning with Bayesian OptimizationACM Transactions on Programming Languages and Systems10.1145/312113540:4(1-37)Online publication date: 16-Nov-2018
  • (2017)Automatically generating features for learning program analysis heuristics for C-like languagesProceedings of the ACM on Programming Languages10.1145/31339251:OOPSLA(1-25)Online publication date: 12-Oct-2017
  • (2017)Failure-directed program trimmingProceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering10.1145/3106237.3106249(174-185)Online publication date: 21-Aug-2017
  • (2017)Combining the logical and the probabilistic in program analysisProceedings of the 1st ACM SIGPLAN International Workshop on Machine Learning and Programming Languages10.1145/3088525.3088563(27-34)Online publication date: 18-Jun-2017
  • 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