paperbot · PL 论文追踪

全部论文 待读 收藏

P2 CompCertM: CompCert with C-assembly linking and lightweight modular verification

CompCertM:支持 C 与汇编链接及轻量级模块化验证的 CompCert
POPL 4(POPL)2019匹配度 2/10 · 论文研究 CompCert 支持 C 与汇编链接的轻量模块化验证技术,属于形式化验证与编译器验证方向;但用户画像的核心是 LLM/Agent 与静态分析/形式化验证的交叉,以及浮点或贝叶斯程序分析,该论文未涉及这些关键要素。引用 49 inbox
Youngju Song, Minki Cho, Dongjoo Kim, Yonghyun Kim, Jeehoon Kang, Chung-Kil Hur
crossref: 2026-09-10

AI 速览

一句话:提出轻量级验证技术 RUSC,使 CompCert 在无限制条件下支持 C 与手写汇编的多语言链接,且验证开销低。

CompCert 原本只支持分离编译,要支持 C 与手写汇编模块的多语言链接,就需要比其现有方法更具组合性的验证技术。已有工作采取两种路线:CompCertX 通过限制源模块之间不得相互依赖、且须满足特定良行为规约来简化问题;Compositional CompCert 则直接给出新的验证技术,但代价是验证成本大幅上升。本文提出一种新的轻量级验证技术 RUSC(Refinement Under Self-related Contexts),在没有任何上述限制的前提下解决该问题,同时保持较低的验证开销。作者据此实现了 CompCertM,即最新版 CompCert 的完整扩展,支持多语言链接。此外,作者通过对由 C 与手写汇编组成的有趣程序按其数学规约进行模块化验证,展示了 RUSC 作为程序验证技术的能力。

问题
如何在已验证编译器 CompCert 中支持 C 与手写汇编模块的多语言链接,而既不引入 CompCertX 那样的源模块限制,也不付出 Compositional CompCert 那样高昂的验证成本。
方法
提出轻量级的精化验证技术 RUSC(Refinement Under Self-related Contexts),并基于最新版 CompCert 实现完整扩展 CompCertM 以支持多语言链接。
评估
论证 RUSC 在无任何限制下解决多语言链接问题且验证开销低,并对由 C 与手写汇编构成的有趣程序按其数学规约进行模块化验证以展示其验证能力。
原文摘要(Abstract)

Supporting multi-language linking such as linking C and handwritten assembly modules in the verified compiler CompCert requires a more compositional verification technique than that used in CompCert just supporting separate compilation. The two extensions, CompCertX and Compositional CompCert, supporting multi-language linking take different approaches. The former simplifies the problem by imposing restrictions that the source modules should have no mutual dependence and be verified against certain well-behaved specifications. On the other hand, the latter develops a new verification technique that directly solves the problem but at the expense of significantly increasing the verification cost. In this paper, we develop a novel lightweight verification technique, called RUSC (Refinement Under Self-related Contexts), and demonstrate how RUSC can solve the problem without any restrictions but still with low verification overhead. For this, we develop CompCertM, a full extension of the latest version of CompCert supporting multi-language linking. Moreover, we demonstrate the power of RUSC as a program verification technique by modularly verifying interesting programs consisting of C and handwritten assembly against their mathematical specifications.

链接与引用

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

BibTeX
@article{paperbot576,
  title = {CompCertM: CompCert with C-assembly linking and lightweight modular verification},
  author = {Youngju Song and Minki Cho and Dongjoo Kim and Yonghyun Kim and Jeehoon Kang and Chung-Kil Hur},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {4},
  number = {POPL},
  year = {2019},
  doi = {10.1145/3371091}
}