paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Finding Unstable Code via Compiler-Driven Differential Testing

通过编译器驱动的差分测试发现不稳定代码
ASPLOS Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 32023匹配度 3/10 · 该论文属于编译与软件测试领域,关注通过编译器驱动的差分测试发现未定义行为导致的不稳定代码,虽与程序分析/PL 有间接关联,但未涉及用户核心关注的 PL×AI、LLM/Agent、静态分析、浮点程序分析或贝叶斯程序分析。引用 18 inbox
Shaohua Li, Zhendong Su
crossref: 2026-09-12

AI 速览

一句话:提出编译器驱动的差分测试,用于发现因未定义行为导致运行时语义不一致的不稳定代码。

本文关注由未定义行为(UB)导致的“不稳定代码”:同一程序可能因 UB 而在不同编译结果下呈现不一致的运行时语义。编译器通常假设 UB 不会发生,从而生成高效但可能语义不一致的二进制;现有 sanitizer 等动态工具主要覆盖常见 UB,难以发现当前技术触及不到的 UB。作者提出编译器驱动的差分测试来检测此类不稳定代码,旨在利用编译器对 UB 的假设与优化行为差异,暴露潜在的不稳定语义。摘要未报告具体实验数据与定量结果,但该工作将差分测试与编译器对 UB 的利用机制结合,为发现传统动态工具遗漏的 UB 提供了新途径。

问题
如何检测因未定义行为(UB)导致运行时语义不一致的不稳定代码,尤其是现有 sanitizer 等技术无法触及的 UB。
方法
提出编译器驱动的差分测试(compiler-driven differential testing),通过编译器对 UB 的假设/优化所导致的行为差异来发现不稳定代码。
评估
摘要未报告具体实验设置、基准与结果;评估方向是通过编译器驱动的差分测试暴露 UB 导致的不稳定行为。
原文摘要(Abstract)

Unstable code refers to code that has inconsistent or unstable run-time semantics due to undefined behavior (UB) in the program. Compilers exploit UB by assuming that UB never occurs, which allows them to generate efficient but potentially semantically inconsistent binaries. Practitioners have put great research and engineering effort into designing dynamic tools such as sanitizers for frequently occurring UBs. However, it remains a big challenge how to detect UBs that are beyond the reach of current techniques.

链接与引用

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

BibTeX
@inproceedings{paperbot10096,
  title = {Finding Unstable Code via Compiler-Driven Differential Testing},
  author = {Shaohua Li and Zhendong Su},
  booktitle = {ASPLOS},
  year = {2023},
  doi = {10.1145/3582016.3582053}
}