paperbot · PL 论文追踪

全部论文 待读 收藏

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

CFA 归来:即使对面向对象程序,调用点敏感也能优于对象敏感
POPL 6(POPL)2022匹配度 5/10 · 论文是纯静态分析/上下文敏感度研究,挑战对象敏感优于调用点敏感的传统观点,兼具理论证明与 Doop 工程实现,符合用户对理论+工程和问题驱动工作的偏好;但它不涉及 LLM/Agentic、浮点程序分析或贝叶斯程序分析,与当前主攻的 PL×AI 交叉方向仅有间接关联。引用 15 inbox
Minseok Jeon, Hakjoo Oh
crossref: 2026-09-10

AI 速览

一句话:挑战对象敏感优于调用点敏感的传统观点,在上下文隧道机制下证明调用点敏感可模拟对象敏感且更精确可扩展。

本文重新审视面向对象程序静态分析中上下文敏感性的经典结论:对象敏感通常被认为比调用点敏感更精确。作者指出该结论只在传统 k-limited 设置下成立;在最近提出的 context tunneling 设置下,分析可从上下文字符串中任意选取长度 k 的子序列,此时调用点敏感能几乎完全模拟对象敏感,反之则不行。为此提出 Obj2CFA,将任意 context-tunneled 对象敏感分析转换为更精确的 context-tunneled 调用点敏感分析。作者在 Doop 中实现该方法,并基于最先进的对象敏感指针分析导出新的调用点敏感分析。真实 Java 程序实验表明,新分析在精度和可扩展性上均优于对象敏感,甚至 1-call-site 也比传统 3-object-sensitive 更精确。

问题
传统观点认为面向对象程序静态分析中对象敏感优于调用点敏感,本文质疑该观点并研究二者在更一般的 context tunneling 设置下的关系。
方法
提出 Obj2CFA,将任意 context-tunneled 对象敏感分析转换为更精确的 context-tunneled 调用点敏感分析,并在 Doop 中基于最先进对象敏感指针分析实现。
评估
在真实 Java 程序上实验,比较精度与可扩展性;结果显示调用点敏感优于对象敏感,甚至 1-call-site 比传统 3-object-sensitive 更精确。
原文摘要(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.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot1578,
  title = {Return of CFA: call-site sensitivity can be superior to object sensitivity even for object-oriented programs},
  author = {Minseok Jeon and Hakjoo Oh},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {6},
  number = {POPL},
  year = {2022},
  doi = {10.1145/3498720}
}