paperbot · PL 论文追踪

全部论文 待读 收藏

P2 On the recall of static call graph construction in practice

论实践中静态调用图构建的召回率
ICSE Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering2020匹配度 4/10 · 该论文属于静态分析/调用图构建的实证研究,问题驱动且能揭示漏报原因,与用户对程序分析的兴趣相关;但不涉及 LLM/Agent、ML 系统、浮点或贝叶斯程序分析,也不直接面向 Agentic 程序,故匹配度有限。引用 35 inbox
Li Sui, Jens Dietrich, Amjed Tahir, George Fourtounis
crossref: 2026-09-12

AI 速览

一句话:通过31个真实Java程序的执行预言机,实证测量多种静态调用图算法的召回率,并定位导致漏报的语言特性。

静态分析在保持可接受精度的同时,难以健全地建模动态语言特性;该问题理论上已知,但缺乏真实程序中的影响证据。本文针对调用图构建,选取31个真实Java程序,从内置测试与合成的高覆盖率测试执行中记录实际程序行为作为预言机,以度量各类静态分析算法及其配置的召回率,并分析哪些语言特性会导致静态分析假阴性(漏报)。结果揭示了实践中的召回率状况,并识别出造成漏报的特性,为改进静态调用图构建提供实证依据。

问题
静态分析难以在可接受精度下健全建模动态语言特性,且缺乏真实程序中的影响证据;本文关注静态调用图构建的召回率。
方法
使用31个真实Java程序,以内置与合成的高覆盖率测试执行行为作为预言机,测量多种静态分析算法及配置的召回率,并分析导致假阴性的语言特性。
评估
评估覆盖31个Java程序上多种静态调用图算法/配置,通过实际执行预言机度量召回率并归因语言特性导致的漏报。
原文摘要(Abstract)

Static analyses have problems modelling dynamic language features soundly while retaining acceptable precision. The problem is well-understood in theory, but there is little evidence on how this impacts the analysis of real-world programs. We have studied this issue for call graph construction on a set of 31 real-world Java programs using an oracle of actual program behaviour recorded from executions of built-in and synthesised test cases with high coverage, have measured the recall that is being achieved by various static analysis algorithms and configurations, and investigated which language features lead to static analysis false negatives.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot5619,
  title = {On the recall of static call graph construction in practice},
  author = {Li Sui and Jens Dietrich and Amjed Tahir and George Fourtounis},
  booktitle = {ICSE},
  year = {2020},
  doi = {10.1145/3377811.3380441}
}