Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3088515.3088517acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

A Datalog model of must-alias analysis

Published: 18 June 2017 Publication History

Abstract

We give a declarative model of a rich family of must-alias analyses. Our emphasis is on careful and compact modeling, while exposing the key points where the algorithm can adjust its inference power. The model is executable, in the Datalog language, and forms the basis of a full-fledged must-alias analysis of Java bytecode in the Doop framework.

References

[1]
G. Balakrishnan and T. W. Reps. Recency-abstraction for heap-allocated storage. In Proc. of the 14th International Symp. on Static Analysis, SAS ’06, pages 221–239. Springer, 2006.
[2]
M. Bravenboer and Y. Smaragdakis. Strictly declarative specification of sophisticated points-to analyses. In Proc. of the 24th Annual ACM SIGPLAN Conf. on Object Oriented Programming, Systems, Languages, and Applications, OOPSLA ’09, New York, NY, USA, 2009. ACM.
[3]
A. De and D. D’Souza. Scalable flow-sensitive pointer analysis for java with strong updates. In Proceedings of the 26th European Conference on Object-Oriented Programming, ECOOP’12, pages 665–687, Berlin, Heidelberg, 2012. Springer-Verlag.
[4]
M. Emami, R. Ghiya, and L. J. Hendren. Context-sensitive interprocedural points-to analysis in the presence of function pointers. In Proc. of the 1994 ACM SIGPLAN Conf. on Programming Language Design and Implementation, PLDI ’94, pages 242–256, New York, NY, USA, 1994. ACM.
[5]
S. Fink, E. Yahav, N. Dor, G. Ramalingam, and E. Geay. Effective typestate verification in the presence of aliasing. In International Symposium on Software Testing and Analysis (ISSTA), pages 133–144, New York, NY, USA, 2006. ACM.
[6]
M. Hind, M. Burke, P. Carini, and J.-D. Choi. Interprocedural pointer alias analysis. ACM Trans. Program. Lang. Syst., 21(4):848–894, July 1999.
[7]
S. Jagannathan, P. Thiemann, S. Weeks, and A. Wright. Single and loving it: Must-alias analysis for higher-order languages. In Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL ’98, pages 329–341, New York, NY, USA, 1998. ACM.
[8]
G. Kastrinis and Y. Smaragdakis. Hybrid context-sensitivity for points-to analysis. In Proc. of the 2013 ACM SIGPLAN Conf. on Programming Language Design and Implementation, PLDI ’13, New York, NY, USA, 2013. ACM.
[9]
X. Ma, J. Wang, and W. Dong. Computing must and may alias to detect null pointer dereference. In Proc. of the 3rd International Symp. On Leveraging Applications of Formal Methods, Verification and Validation, volume 17 of ISoLA ’08, pages 252–261. Springer, 2008.
[10]
A. Milanova, A. Rountev, and B. G. Ryder. Parameterized object sensitivity for points-to and side-effect analyses for Java. In Proc. of the 2002 International Symp. on Software Testing and Analysis, ISSTA ’02, pages 1–11, New York, NY, USA, 2002. ACM.
[11]
A. Milanova, A. Rountev, and B. G. Ryder. Parameterized object sensitivity for points-to analysis for Java. ACM Trans. Softw. Eng. Methodol., 14(1):1–41, 2005.
[12]
D. Nikoli´c and F. Spoto. Definite expression aliasing analysis for Java bytecode. In Proc. of the 9th International Colloquium on Theoretical Aspects of Computing, volume 7521 of ICTAC ’12, pages 74–89. Springer, 2012.
[13]
M. Sagiv, T. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. ACM Transactions on Programming Languages and Systems, 24(3):217–298, May 2002.
[14]
M. Sharir and A. Pnueli. Two approaches to interprocedural data flow analysis. In S. S. Muchnick and N. D. Jones, editors, Program flow analysis: theory and applications, chapter 7, pages 189–233. Prentice-Hall, Inc., Englewood Cliffs, NJ, 1981.
[15]
O. Shivers. Control-Flow Analysis of Higher-Order Languages. PhD thesis, Carnegie Mellon University, may 1991.
[16]
Y. Smaragdakis and G. Balatsouras. Pointer analysis. Foundations and Trends in Programming Languages, 2(1):1–69, 2015.
[17]
Y. Smaragdakis, M. Bravenboer, and O. Lhoták. Pick your contexts well: Understanding object-sensitivity. In Proc. of the 38th ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, POPL ’11, pages 17–30, New York, NY, USA, 2011. ACM.
[18]
R. Vallée-Rai, P. Co, E. Gagnon, L. J. Hendren, P. Lam, and V. Sundaresan. Soot - a Java bytecode optimization framework. In Proc. of the 1999 Conf. of the Centre for Advanced Studies on Collaborative research, CASCON ’99, pages 125–135. IBM Press, 1999.
[19]
Introduction Must-Alias Analysis Model Intermediate Language / Analysis Schema Analysis Model Discussion Related Work

Cited By

View all
  • (2024)SafeMD: Ownership-Based Safe Memory Deallocation for C ProgramsElectronics10.3390/electronics1321430713:21(4307)Online publication date: 1-Nov-2024
  • (2024)SPATA: Effective OS Bug Detection with Summary-Based, Alias-Aware, and Path-Sensitive Typestate AnalysisACM Transactions on Computer Systems10.1145/369525042:3-4(1-40)Online publication date: 6-Sep-2024
  • (2024)To Tag, or Not to Tag: Translating C's Unions to Rust's Tagged UnionsProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3694985(40-52)Online publication date: 27-Oct-2024
  • Show More Cited By

Index Terms

  1. A Datalog model of must-alias analysis

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    SOAP 2017: Proceedings of the 6th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis
    June 2017
    48 pages
    ISBN:9781450350723
    DOI:10.1145/3088515
    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 the author(s) 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: 18 June 2017

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Alias analysis
    2. Datalog
    3. must analysis

    Qualifiers

    • Research-article

    Conference

    PLDI '17
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 11 of 11 submissions, 100%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)2
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 16 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)SafeMD: Ownership-Based Safe Memory Deallocation for C ProgramsElectronics10.3390/electronics1321430713:21(4307)Online publication date: 1-Nov-2024
    • (2024)SPATA: Effective OS Bug Detection with Summary-Based, Alias-Aware, and Path-Sensitive Typestate AnalysisACM Transactions on Computer Systems10.1145/369525042:3-4(1-40)Online publication date: 6-Sep-2024
    • (2024)To Tag, or Not to Tag: Translating C's Unions to Rust's Tagged UnionsProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3694985(40-52)Online publication date: 27-Oct-2024
    • (2024)Evaluating the Effectiveness of Deep Learning Models for Foundational Program Analysis TasksProceedings of the ACM on Programming Languages10.1145/36498298:OOPSLA1(500-528)Online publication date: 29-Apr-2024
    • (2022)Path-sensitive and alias-aware typestate analysis for detecting OS bugsProceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3503222.3507770(859-872)Online publication date: 28-Feb-2022
    • (2020)Applications of Synchronized Pushdown SystemsErnst Denert Award for Software Engineering 201910.1007/978-3-030-58617-1_3(19-45)Online publication date: 4-Dec-2020
    • (2019)Context-, flow-, and field-sensitive data-flow analysis using synchronized Pushdown systemsProceedings of the ACM on Programming Languages10.1145/32903613:POPL(1-29)Online publication date: 2-Jan-2019
    • (2018)MemFix: static analysis-based repair of memory deallocation errors for CProceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3236024.3236079(95-106)Online publication date: 26-Oct-2018
    • (2018)An efficient data structure for must-alias analysisProceedings of the 27th International Conference on Compiler Construction10.1145/3178372.3179519(48-58)Online publication date: 24-Feb-2018

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media