paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Unimocg: Modular Call-Graph Algorithms for Consistent Handling of Language Features

Unimocg:模块化调用图算法,一致地处理语言特性
ISSTA Proceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis2024匹配度 3/10 · 论文属于程序分析与静态分析基础设施,提出模块化调用图构建架构,和用户关注的静态分析有一般性关联;但它不涉及 LLM/Agentic 程序分析、浮点程序分析或贝叶斯程序分析,也不是这些方向与 LLM 的交叉,因此与当前核心研究画像匹配度较低。引用 0 inbox
Dominik Helm, Tobias Roth, Sven Keidel, Michael Reif, Mira Mezini
crossref: 2026-09-12

AI 速览

一句话:提出模块化调用图构建架构 Unimocg,将类型信息计算与调用解析解耦,统一支持多种语言特性并兼容十种调用图算法。

传统调用图构建算法把可能的运行时类型计算与(虚拟)调用解析纠缠在一起,这种设计既难以支持复杂的语言特性与 API,也难以在精度、可靠性与可扩展性之间做出系统性权衡,还阻碍了依赖类型信息的精确下游分析。本文提出 Unimocg:一种模块化的调用图构建架构,将类型信息计算与调用解析解耦。借助模块化设计,Unimocg 能把各类调用图算法与算法无关的模块组合起来,以支持单个语言特性,且这些模块无需额外代价即可达到所选算法的精度;其他分析也能以完整精度复用调用图构建所得的类型信息。作者据此构建了一个由可复用模块组成的调用图算法框架,目前支持来自差异极大算法族的十种算法,如 CHA、RTA、XTA 与 k-l-CFA。实验表明这些算法在保持一致可靠性的同时未牺牲精度或性能,并展示了 Unimocg 如何改进不可变性分析。

问题
传统调用图构建把运行时类型计算与虚拟调用解析纠缠在一起,导致难以支持复杂语言特性与 API,难以在精度、可靠性和可扩展性之间系统权衡,也妨碍依赖类型信息的精确下游分析。
方法
提出模块化架构 Unimocg,将类型信息计算与调用解析解耦,用算法无关的模块支持各语言特性,并允许其他分析以完整精度复用调用图构建中的类型信息。
评估
在统一框架中集成并比较来自不同算法族的十种调用图算法(CHA、RTA、XTA、k-l-CFA 等),验证其可靠性一致且不牺牲精度与性能;并以不可变性分析为例展示复用效果。
原文摘要(Abstract)

Traditional call-graph construction algorithms conflate the computation of possible runtime types with the actual resolution of (virtual) calls. This tangled design impedes supporting complex language features and APIs and making systematic trade-offs between precision, soundness, and scalability. It also impedes implementation of precise downstream analyses that rely on type information. To address the problem, we propose Unimocg, a modular architecture for call-graph construction that decouples the computation of type information from resolving calls. Due to its modular design, Unimocg can combine a wide range of different call-graph algorithms with algorithm-agnostic modules to support individual language features. Moreover, these modules operate at the same precision as the chosen call-graph algorithm with no further effort. Additionally, Unimocg allows other analyses to easily reuse type information from the call-graph construction at full precision. We demonstrate how Unimocg enables a framework of call-graph algorithms with different precision, soundness, and scalability trade-offs from reusable modules. Unimocg currently supports ten call-graph algorithms from vastly different families, such as CHA, RTA, XTA, and k-l-CFA. These algorithms show consistent soundness without sacrificing precision or performance. We also show how an immutability analysis is improved using Unimocg.

链接与引用

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

BibTeX
@inproceedings{paperbot8461,
  title = {Unimocg: Modular Call-Graph Algorithms for Consistent Handling of Language Features},
  author = {Dominik Helm and Tobias Roth and Sven Keidel and Michael Reif and Mira Mezini},
  booktitle = {ISSTA},
  year = {2024},
  doi = {10.1145/3650212.3652109}
}