2015
DOI: 10.1017/s0956796815000180
|View full text |Cite
|
Sign up to set email alerts
|

Calculating correct compilers

Abstract: In this article we present a new approach to the problem of calculating compilers. In particular, we develop a simple but general technique that allows us to derive correct compilers from highlevel semantics by systematic calculation, with all details of the implementation of the compilers falling naturally out of the calculation process. Our approach is based upon the use of standard equational reasoning techniques, and has been applied to calculate compilers for a wide range of language features and their co… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
57
0

Year Published

2015
2015
2019
2019

Publication Types

Select...
4
3

Relationship

3
4

Authors

Journals

citations
Cited by 15 publications
(57 citation statements)
references
References 22 publications
0
57
0
Order By: Relevance
“…Proof techniques can also help proof engineers reason within certain domains. Bahr and Hutton (2015), for example, describes a technique for deriving correct compilers from specifications in Coq. Section 6.2.5 describes techniques for reasoning about imperative programs.…”
Section: Proof Organization and Scalabilitymentioning
confidence: 99%
“…Proof techniques can also help proof engineers reason within certain domains. Bahr and Hutton (2015), for example, describes a technique for deriving correct compilers from specifications in Coq. Section 6.2.5 describes techniques for reasoning about imperative programs.…”
Section: Proof Organization and Scalabilitymentioning
confidence: 99%
“…So far, all the proofs that we have seen have been very simple. To show that Liquid Haskell scales to more involved arguments, we show how it can be used to calculate a correct and efficient compiler for arithmetic expressions with addition, as in [Bahr and Hutton 2015;Hutton 2016].…”
Section: Case Study: Correct Compilersmentioning
confidence: 99%
“…Leroy and Grall [3] cite compiler correctness proofs as a main motivation for using coinductive big-step semantics as opposed to small-step semantics: using small-step semantics complicates the correctness proof. Indeed, Hutton and Wright [5] and Hutton and Bahr [40] also use big-step semantics for their compiler correctness proofs. However, in CompCert, Leroy [41] uses a small-step semantics and sophisticated notions of bisimulation for its compiler correctness proofs.…”
Section: Related Workmentioning
confidence: 99%