paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Taming the Hydra: Targeted Control-Flow Transformations for Dynamic Symbolic Execution

驯服九头蛇:面向动态符号执行的目标化控制流变换
OOPSLA 10(OOPSLA1)2026匹配度 3/10 · 论文属于动态符号执行与编译期控制流变换的程序分析工作,虽与静态/动态程序分析及形式化验证相邻,但未涉及 LLM/Agent、浮点程序分析或贝叶斯程序分析,也不属于用户所列的 PL↔AI 交叉问题。引用 0 inbox
Charitha Saumya, Muhammad Hassan, Rohan Gangaraju, Milind Kulkarni, Kirshanthan Sundararajah
crossref: 2026-09-10

AI 速览

一句话:提出一种非语义保持但失败保持的编译期控制流变换,消除昂贵符号分支以提升动态符号执行的可扩展性。

动态符号执行(DSE)在目标程序含大量条件分支时面临路径爆炸问题。经典对策是动态状态合并,通过合并相似的符号状态避免状态数指数增长,但状态合并在每个分支处仍需调用求解器,即便两条路径都可行;而且 DSE 的最优路径搜索策略未必能创造最佳合并机会。已有工作尝试用编译期状态合并(把控制流转换为数据流以消除分支)来缓解这些缺陷。本文进一步提出一种非语义保持但失败保持(failure-preserving)的编译器变换,用于移除程序中代价高昂的符号分支,从而提升 DSE 的可扩展性。由于变换可能引入伪 bug,作者还构建了一个检测此类伪 bug 的框架。实验表明,该变换在多个基准程序上显著提升 DSE 性能,并在大型真实程序上改善了覆盖率与缺陷发现的效果。

问题
动态符号执行在分支密集程序中遭遇路径爆炸,动态状态合并虽能抑制状态增长,却仍需在每个分支调用求解器,且搜索策略与合并机会不匹配。
方法
设计一种非语义保持但失败保持的编译期控制流变换,将昂贵符号分支转化为数据流以消除它们,并配套构建检测变换所引入伪 bug 的框架。
评估
在多个基准程序上测量 DSE 性能提升,并在大型真实程序上评估覆盖率与缺陷发现能力。
原文摘要(Abstract)

Dynamic Symbolic Execution (DSE) suffers from the path explosion problem when the target program has many conditional branches. The classical approach for managing the path explosion problem is dynamic state merging. Dynamic state merging combines similar symbolic program states to avoid the exponential growth in the number of states during DSE. However, state merging still requires solver invocations at each program branch, even when both paths of the branch are feasible. Moreover, the best path search strategy for DSE may not create the best state merging opportunities. Some drawbacks of state merging can be mitigated by compile-time state merging (i.e., branch elimination by converting control-flow into dataflow). In this paper, we propose a non-semantics-preserving but failure-preserving compiler transformation for removing expensive symbolic branches in a program to improve the scalability of DSE. We have developed a framework for detecting spurious bugs that our transformation can insert. Finally, we show that our transformation can significantly improve the performance of DSE on various benchmark programs and help improve the performance of coverage and bug discovery of large real-world programs.

链接与引用

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

BibTeX
@article{paperbot3828,
  title = {Taming the Hydra: Targeted Control-Flow Transformations for Dynamic Symbolic Execution},
  author = {Charitha Saumya and Muhammad Hassan and Rohan Gangaraju and Milind Kulkarni and Kirshanthan Sundararajah},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {10},
  number = {OOPSLA1},
  year = {2026},
  doi = {10.1145/3798202}
}