2019
DOI: 10.1145/3341689
|View full text |Cite
|
Sign up to set email alerts
|

The next 700 compiler correctness theorems (functional pearl)

Abstract: Compiler correctness is an old problem, with results stretching back beyond the last half-century. Founding the field, John McCarthy and James Painter set out to build a łcompletely trustworthy compilerž. And yet, until quite recently, even despite truly impressive verification efforts, the theorems being proved were only about the compilation of whole programs, a theoretically quite appealing but practically unrealistic simplification. For a compiler correctness theorem to assure complete trust, the theorem m… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
19
0
1

Year Published

2019
2019
2023
2023

Publication Types

Select...
4
2
1

Relationship

0
7

Authors

Journals

citations
Cited by 27 publications
(20 citation statements)
references
References 40 publications
0
19
0
1
Order By: Relevance
“…Notice that condition (i) usually 4 even follows from whole-program correctness, namely, whole-program backward simulation (together with some structural lemmas about linking and compilation). Whole-program backward simulation is a standard [14,15] formal criterion for considering a compiler bug-free with respect to a given source semantics.…”
Section: A Fully Abstract Compilation Formallymentioning
confidence: 99%
“…Notice that condition (i) usually 4 even follows from whole-program correctness, namely, whole-program backward simulation (together with some structural lemmas about linking and compilation). Whole-program backward simulation is a standard [14,15] formal criterion for considering a compiler bug-free with respect to a given source semantics.…”
Section: A Fully Abstract Compilation Formallymentioning
confidence: 99%
“…As a result, common wisdom holds semantics preservation to be a lost cause for compositional compiler correctness [20]. Instead, research has focused on compositional reasoning methods based on contextual refinement, side-stepping the need for compositional semantics preservation [10,22].…”
Section: Compositional Compiler Correctnessmentioning
confidence: 99%
“…A general survey, discussion and synthesis of various compositional compiler correctness results is provided by Patterson and Ahmed [20]. We focus on CompCert extensions.…”
Section: Related Work and Evaluationmentioning
confidence: 99%
“…The reason is that, as discussed above, allowing different memory relations would introduce different rely/guarantee conditions thereby breaking simulation after linking (i.e., horizontal compositionality) due to the mismatch between different rely/guarantee conditions. Second, proving vertical compositionality for open simulations is in general very technical and involved [Neis et al 2015;Patterson and Ahmed 2019]. Indeed the proof for structured simulations is about 5,000 SLOC in Coq.…”
Section: Problemsmentioning
confidence: 99%
“…Multi-language semantics. Ahmed and her collaborators propose multi-language semantics [New et al 2016;Patterson and Ahmed 2019;Patterson et al 2017;Perconti and Ahmed 2014;Scherer et al 2018] as an approach to prove compositional correctness and full abstraction of a compiler for both assembly-like and higher-order languages. Specifically, they define a language that combines all of the source, intermediate and target languages, and prove contextual equivalence and/or full abstraction for each translation pass in the combined language using logical relations (with back-translations).…”
Section: Compositional Compiler Correctness For Higher-order Languagesmentioning
confidence: 99%