paperbot · PL 论文追踪

RSS

Denotation-based Compositional Compiler Verification

TOPLAS 48(1)2026
Zhang Cheng, Jiyang Wu, Di Wang, Qinxiang Cao

尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。

原文摘要(Abstract)

A desired but challenging property of compiler verification is compositionality, in the sense that the compilation correctness of a program can be deduced incrementally from that of its substructures ranging from statements, functions, and modules. This article proposes a novel compiler verification framework based on denotational semantics for better compositionality, compared to previous approaches based on small-step operational semantics and simulation theories. Our denotational semantics is defined by semantic functions that map a syntactic component to a semantic domain composed of multiple behavioral sets , with compiler correctness established through behavior refinement between the semantic domains of the source and target programs. The main contributions of this article include proposing a denotational semantics for open modules, a novel semantic linking operator, and a refinement algebra that unifies various behavior refinements, making compiler verification structured and compositional. Furthermore, our formalization captures the full meaning of a program and bridges the gap between traditional power-domain-based denotational semantics and the practical needs of compiler verification. We apply our denotation-based framework to verify the front-end of CompCert and typical optimizations on simple prototypes of imperative languages. Our results demonstrate that the compositionality from sub-statements to statements, from functions to modules, and from modules to the whole program can be effectively achieved.

链接与引用

DOI 原文 ·

BibTeX
@article{paperbot3958,
  title = {Denotation-based Compositional Compiler Verification},
  author = {Zhang Cheng and Jiyang Wu and Di Wang and Qinxiang Cao},
  journal = {ACM Transactions on Programming Languages and Systems},
  volume = {48},
  number = {1},
  year = {2026},
  doi = {10.1145/3797874}
}