Abstract : We propose a semantic type soundness result, formalized in the Coq proof assistant, for a compiler from a simple functional language to SECD machine code. Our result is quite independent from the source language as it uses Krivine's realizability to give a denotational semantics to SECD machine code using only the type system of the source language. We use realizability to prove the correctness of both a call-by-name (CBN) and a call-by-value (CBV) compiler with the same notion of orthogonality. We abstract over the notion of observation (e.g. divergence or termination) and derive an operational correctness result that relates the reduction of a term with the execution of its compiled SECD machine code.
https://hal.archives-ouvertes.fr/hal-00475210 Contributor : Nicolas TabareauConnect in order to contact the contributor Submitted on : Wednesday, May 12, 2010 - 1:58:59 PM Last modification on : Wednesday, April 27, 2022 - 4:22:41 AM Long-term archiving on: : Thursday, December 1, 2016 - 12:36:55 AM
Guilhem Jaber, Nicolas Tabareau. Krivine realizability for compiler correctness. Workshop LOLA 2010, Syntax and Semantics of Low Level Languages, Jul 2010, Edinburgh, United Kingdom. ⟨hal-00475210v2⟩