Return of CFA: call-site sensitivity can be superior to object sensitivity even for object-oriented programs

Author:

Jeon Minseok1,Oh Hakjoo1

Affiliation:

1. Korea University, South Korea

Abstract

In this paper, we challenge the commonly-accepted wisdom in static analysis that object sensitivity is superior to call-site sensitivity for object-oriented programs. In static analysis of object-oriented programs, object sensitivity has been established as the dominant flavor of context sensitivity thanks to its outstanding precision. On the other hand, call-site sensitivity has been regarded as unsuitable and its use in practice has been constantly discouraged for object-oriented programs. In this paper, however, we claim that call-site sensitivity is generally a superior context abstraction because it is practically possible to transform object sensitivity into more precise call-site sensitivity. Our key insight is that the previously known superiority of object sensitivity holds only in the traditional k -limited setting, where the analysis is enforced to keep the most recent k context elements. However, it no longer holds in a recently-proposed, more general setting with context tunneling. With context tunneling, where the analysis is free to choose an arbitrary k -length subsequence of context strings, we show that call-site sensitivity can simulate object sensitivity almost completely, but not vice versa. To support the claim, we present a technique, called Obj2CFA, for transforming arbitrary context-tunneled object sensitivity into more precise, context-tunneled call-site-sensitivity. We implemented Obj2CFA in Doop and used it to derive a new call-site-sensitive analysis from a state-of-the-art object-sensitive pointer analysis. Experimental results confirm that the resulting call-site sensitivity outperforms object sensitivity in precision and scalability for real-world Java programs. Remarkably, our results show that even 1-call-site sensitivity can be more precise than the conventional 3-object-sensitive analysis.

Publisher

Association for Computing Machinery (ACM)

Subject

Safety, Risk, Reliability and Quality,Software

Reference56 articles.

1. Pavol Bielik , Veselin Raychev , and Martin Vechev . 2017. Learning a Static Analyzer from Data . In Computer Aided Verification, Rupak Majumdar and Viktor Kunčak (Eds.). Springer International Publishing , Cham . 233–253. isbn:978-3-319-63387-9 Pavol Bielik, Veselin Raychev, and Martin Vechev. 2017. Learning a Static Analyzer from Data. In Computer Aided Verification, Rupak Majumdar and Viktor Kunčak (Eds.). Springer International Publishing, Cham. 233–253. isbn:978-3-319-63387-9

2. The DaCapo benchmarks

3. Strictly declarative specification of sophisticated points-to analyses

4. Andrei Marian Dan , Manu Sridharan , Satish Chandra , Jean-Baptiste Jeannin , and Martin Vechev . 2017. Finding Fix Locations for CFL-Reachability Analyses via Minimum Cuts . In Computer Aided Verification, Rupak Majumdar and Viktor Kunčak (Eds.). Springer International Publishing , Cham . 521–541. isbn:978-3-319-63390-9 Andrei Marian Dan, Manu Sridharan, Satish Chandra, Jean-Baptiste Jeannin, and Martin Vechev. 2017. Finding Fix Locations for CFL-Reachability Analyses via Minimum Cuts. In Computer Aided Verification, Rupak Majumdar and Viktor Kunčak (Eds.). Springer International Publishing, Cham. 521–541. isbn:978-3-319-63390-9

5. Apposcopy: semantics-based detection of Android malware through static analysis

Cited by 9 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. TIPS: Tracking Integer-Pointer Value Flows for C++ Member Function Pointers;Proceedings of the ACM on Software Engineering;2024-07-12

2. Generic Sensitivity: Generics-Guided Context Sensitivity for Pointer Analysis;IEEE Transactions on Software Engineering;2024-05

3. Learning Abstraction Selection for Bayesian Program Analysis;Proceedings of the ACM on Programming Languages;2024-04-29

4. On the Effectiveness of Machine Learning-based Call Graph Pruning: An Empirical Study;Proceedings of the 21st International Conference on Mining Software Repositories;2024-04-15

5. A Container-Usage-Pattern-Based Context Debloating Approach for Object-Sensitive Pointer Analysis;Proceedings of the ACM on Programming Languages;2023-10-16

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3