PLMar 29

Denotation-based Compositional Compiler Verification

arXiv:2404.1729762.0h-index: 1
Predicted impact top 11% in PL · last 90 daysOriginality Incremental advance
AI Analysis

This work addresses the challenge of compositional compiler verification for compiler developers and formal methods researchers, offering a more structured approach compared to existing methods.

The paper proposes a novel compiler verification framework based on denotational semantics to achieve better compositionality than previous approaches. The framework is applied to verify the front-end of CompCert and typical optimizations, demonstrating effective compositionality across program substructures.

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 \emph{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.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes