paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Finding Cuts in Static Analysis Graphs to Debloat Software

在静态分析图中寻找割以精简软件
ISSTA Proceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis2024匹配度 3/10 · 论文属于静态分析与程序分析,但应用场景是软件去臃肿,不涉及 LLM/Agent、机器学习系统、浮点程序分析或贝叶斯程序分析,与用户当前核心交叉方向仅有方法层面的弱关联。引用 1 inbox
Christoph Blumschein, Fabio Niephaus, Codruţ Stancu, Christian Wimmer, Jens Lincke, Robert Hirschfeld
crossref: 2026-09-12

AI 速览

一句话:提出在静态分析规则图中寻找有效割的算法,以少量方法复核实现软件去臃肿。

随着软件项目日益复杂,软件去臃肿受到关注。静态分析给出可达代码的粗略过近似,而基于动态执行轨迹的方法可能危及程序正确性。基于割的去臃肿只要求开发者重新考虑少量方法,就能显著减小代码体积,从而降低风险。本文提出在静态分析生成的规则图中寻找小割的思想:先引入具有合适语义的分析,再将其规则编码为有向超图,并提出一种高效寻找图中最有效单割的算法。所提操作的执行时间支持部署到交互式工具中。最后,作者表明该图模型能够暴露出值得重新考虑的方法。

问题
在软件去臃肿中,静态分析的可达代码过近似过粗,而动态执行轨迹方法有破坏正确性的风险;如何让开发者只复核少量方法仍能显著减小代码体积。
方法
将静态分析规则编码为有向超图,并设计高效算法寻找图中最有效的单割,以暴露值得重新考虑的方法。
评估
通过操作执行时间评估其可用于交互式工具,并展示图模型能够暴露值得复核的方法。
原文摘要(Abstract)

As software projects grow increasingly more complex, debloating gains traction. While static analyses yield a coarse over-approximation of reachable code, approaches based on dynamic execution traces risk program correctness. By allowing the developer to reconsider only a few methods and still achieve a significant reduction in code size, cut-based debloating can minimize the risk. In this paper, we propose the idea of finding small cuts in the rule graphs produced by static analysis. After introducing an analysis with suitable semantics, we discuss how to encode its rules into a directed hypergraph. We then present an algorithm for efficiently finding the most effective single cut in the graph. The execution time of the proposed operations allows for the deployment in interactive tools. Finally, we show that our graph model is able to expose methods worthwhile to reconsider.

链接与引用

DOI 原文 ·

BibTeX
@inproceedings{paperbot8565,
  title = {Finding Cuts in Static Analysis Graphs to Debloat Software},
  author = {Christoph Blumschein and Fabio Niephaus and Codruţ Stancu and Christian Wimmer and Jens Lincke and Robert Hirschfeld},
  booktitle = {ISSTA},
  year = {2024},
  doi = {10.1145/3650212.3680306}
}