一句话:提出 AutoPruner,用 Transformer 结合源代码语义剪枝静态调用图中的误报边。
静态调用图构建需在可靠性与精度间权衡,传统分析生成的调用图通常不够精确。近期工作用机器学习对调用图做后处理剪枝,其中以随机森林分类器基于调用图结构特征预测并删除误报边。然而,这类模型未考虑源代码语义,往往难以有效区分真实边与误报边。AutoPruner 作为 Transformer 方法,旨在弥补该缺陷,将源代码语义引入调用图剪枝,以更准确识别并移除误报边、提升调用图精度。所提供的摘要未给出具体实验数据与结果。
Constructing a static call graph requires trade-offs between soundness and precision. Program analysis techniques for constructing call graphs are unfortunately usually imprecise. To address this problem, researchers have recently proposed call graph pruning empowered by machine learning to post-process call graphs constructed by static analysis. A machine learning model is built to capture information from the call graph by extracting structural features for use in a random forest classifier. It then removes edges that are predicted to be false positives. Despite the improvements shown by machine learning models, they are still limited as they do not consider the source code semantics and thus often are not able to effectively distinguish true and false positives.
@inproceedings{paperbot7132,
title = {AutoPruner: transformer-based call graph pruning},
author = {Thanh Le-Cong and Hong Jin Kang and Truong Giang Nguyen and Stefanus Agus Haryono and David Lo and Xuan-Bach D. Le and Quyet Thang Huynh},
booktitle = {FSE},
year = {2022},
doi = {10.1145/3540250.3549175}
}