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