2011
DOI: 10.1145/1925844.1926402
|View full text |Cite
|
Sign up to set email alerts
|

A kripke logical relation between ML and assembly

Abstract: There has recently been great progress in proving the correctness of compilers for increasingly realistic languages with increasingly realistic runtime systems. Most work on this problem has focused on proving the correctness of a particular compiler, leaving open the question of how to verify the correctness of assembly code that is hand-optimized or linked together from the output of multiple compilers. This has led Benton and other researchers to propose more abstract, compositional notions of when a low-le… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

0
66
0

Year Published

2011
2011
2020
2020

Publication Types

Select...
6
1

Relationship

1
6

Authors

Journals

citations
Cited by 52 publications
(66 citation statements)
references
References 21 publications
0
66
0
Order By: Relevance
“…Reynolds [16] made this mathematically precise by formulating the notion of relational parametricity, and gave a set-theoretic model, where polymorphic programs are required to preserve all relations between instantiated types. Relational parametricity has proven to be one of the key techniques for formally establishing properties of software systems, such as representation independence [2,6], equivalences between programs [11], or deriving useful theorems about programs from their type alone [20].…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…Reynolds [16] made this mathematically precise by formulating the notion of relational parametricity, and gave a set-theoretic model, where polymorphic programs are required to preserve all relations between instantiated types. Relational parametricity has proven to be one of the key techniques for formally establishing properties of software systems, such as representation independence [2,6], equivalences between programs [11], or deriving useful theorems about programs from their type alone [20].…”
Section: Introductionmentioning
confidence: 99%
“…They are certainly fundamental, as can be seen by their numerous uses within the programming literature (see e.g. [2,6,11,19,1]). While valuable, this only provides a partial answer, which ought to be complemented by a deeper and more fundamental understanding.…”
Section: Introductionmentioning
confidence: 99%
“…We have already discussed the existing work [10,12] on compositional compiler correctness in §2. Here we focus on other closely related work.…”
Section: Related Workmentioning
confidence: 99%
“…Benton and Hur verified a compiler from the simply-typed λ-calculus with recursion [10]-and later, from System F with recursion [11]-to an SECD machine, proving that if source component e S compiles to target code e T , then e S and e T are logically related. Later, Hur and Dreyer [12] used essentially the same approach to prove correctness of a compiler from an idealized ML to assembly.…”
Section: Introductionmentioning
confidence: 99%
“…We believe our approach is simpler and more direct than ⊤⊤-closure, but neither approach subsumes the either. On the one hand, ⊤⊤-closure is applicable in more general settings, such as lower-level languages [8,17] or languages with control operators [15], where the behavior of a term depends on its evaluation context. On the other hand, this added generality means that a ⊤⊤-closed relation is incapable of validating some of the inference rules that hold in our more restricted setting.…”
Section: Related Work and Conclusionmentioning
confidence: 99%