Logic for Programming, Artificial Intelligence, and Reasoning
DOI: 10.1007/978-3-540-75560-9_17
|View full text |Cite
|
Sign up to set email alerts
|

Mechanized Verification of CPS Transformations

Abstract: Abstract. Transformation to continuation-passing style (CPS) is often performed by optimizing compilers for functional programming languages. As part of the development and proof of correctness of a compiler for the mini-ML functional language, we have mechanically verified the correctness of two CPS transformations for a call-by-value λ-calculus with n-ary functions, recursive functions, data types and pattern-matching. The transformations generalize Plotkin's original call-by-value transformation and Danvy a… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

1
15
0

Publication Types

Select...
7
1

Relationship

0
8

Authors

Journals

citations
Cited by 16 publications
(16 citation statements)
references
References 27 publications
1
15
0
Order By: Relevance
“…Much like our project, the VLISP project developed their interpreter in a subset of the source language: for them PreScheme, and for us, the input language of our augmented compiler, Section 4. Work that aims to implement functional languages, in a formally verified manner, include Pike et al [17] on a certifying compiler from Cryptol (a dialect of Haskell) to AAMP7 code; Dargaye and Leroy [4] on a certified compiler from mini-ML to PowerPC assembly; Li and Slind's work [10] on a certifying compiler from a subset of HOL4 to ARM assembly; and also Chlipala's certified compiler [3] from the lambda calculus to an invented assembly language. The above work either assumes that the environment implements run-time memory management correctly [3,4] or restricts the input language to a degree where no run-time memory management is needed [10,17].…”
Section: Discussion Of Related Workmentioning
confidence: 99%
“…Much like our project, the VLISP project developed their interpreter in a subset of the source language: for them PreScheme, and for us, the input language of our augmented compiler, Section 4. Work that aims to implement functional languages, in a formally verified manner, include Pike et al [17] on a certifying compiler from Cryptol (a dialect of Haskell) to AAMP7 code; Dargaye and Leroy [4] on a certified compiler from mini-ML to PowerPC assembly; Li and Slind's work [10] on a certifying compiler from a subset of HOL4 to ARM assembly; and also Chlipala's certified compiler [3] from the lambda calculus to an invented assembly language. The above work either assumes that the environment implements run-time memory management correctly [3,4] or restricts the input language to a degree where no run-time memory management is needed [10,17].…”
Section: Discussion Of Related Workmentioning
confidence: 99%
“…[Dargaye and Leroy 2007;Chlipala 2010], closely related to conversion to SSA form. Chlipala [2010] verifies in Coq a compiler to an idealized as-sembly language from a small, untyped functional language with mutable references and exceptions.…”
Section: Machine-checked Formalizationsmentioning
confidence: 99%
“…Recently, Leroy's Coq-verified C compiler [14], which targets PowerPC, ARM and 32-bit x86 assembly, has been extended with new front-ends that makes it compile MiniML [4] and a garbage-collected source language [16]. The latter extension has been connected to intermediate output from the Glasgow Haskell Compiler.…”
Section: The Combination Of Milawa and Jitawamentioning
confidence: 99%