paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Compilomorphic Fuzzing: Turning a Compiler Against Itself

编译同构模糊测试:让编译器对抗自身
FSE Proceedings of the 34th ACM International Conference on the Foundations of Software Engineering2026匹配度 2/10 · 论文聚焦 DSL 编译器模糊测试与验证,属于 PL/编译器测试方向,与用户核心关注的静态分析、LLM/Agent、浮点程序分析和贝叶斯程序分析均无直接关联;仅编译器正确性与形式化基础有边缘联系。引用 0 inbox
Vasileios Klimis
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出「编译同构」模糊测试,用结构保持变换让编译器成为自身的测试预言,暴露深层语义缺陷。

针对以 P4 等 DSL 描述的结构化数据管线编译器难以验证的问题,本文提出「编译同构模糊测试」(compilomorphic fuzzing):不再依赖外部参考模型,而是把编译器本身当作测试预言。其核心思想是在程序与结构化输入上施加结构保持变换,生成语义等价但结构不同的输入对(如报文)与程序对(如管线规格),随后断言编译器在这些等价变体上的可观察行为保持一致;任何偏差都指示出深层语义缺陷。作者给出了该方法的理论基础——compilomorphism,并实现了一个将其工程化的原型模糊测试框架,为关键 DSL 领域的编译器验证建立了一个实用且无需参考模型的基础。

问题
使用 P4 等 DSL 指定的结构化数据管线编译器极难验证,缺乏可靠的测试预言或参考模型。
方法
提出 compilomorphism 形式基础,并在程序与结构化输入上做结构保持变换,生成语义等价但结构不同的对,断言编译器可观察行为不变,偏差即暴露语义缺陷;实现原型模糊测试框架。
评估
通过所实现的原型模糊测试框架将该方法落地,展示其为关键 DSL 编译器验证提供无模型(model-free)基础的可行性。
原文摘要(Abstract)

Compilers for structured data pipelines, often specified using domain-specific languages such as P4, are notoriously difficult to validate. We introduce compilomorphic fuzzing, a new validation approach that turns a compiler into its own test oracle via structure-preserving transformations over programs and structured inputs. The core idea is to generate pairs of semantically equivalent but structurally distinct inputs (e.g., packets) and programs (e.g., pipeline specifications), and then assert that the compiler's observable behaviour remains invariant. Any deviation exposes a deep semantic bug. We present the formal basis for this approach, compilomorphism, and a prototype fuzzing framework that operationalises it, establishing a practical, model-free foundation for validating compilers in critical DSL domains.

链接与引用

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

BibTeX
@inproceedings{Klimis26,
  title = {Compilomorphic Fuzzing: Turning a Compiler Against Itself},
  author = {Vasileios Klimis},
  booktitle = {FSE},
  year = {2026},
  doi = {10.1145/3803437.3805569}
}