Proving Correctness of a Chez Scheme Compiler Pass

We present a proof of correctness for a pass of the Chez Scheme compiler over a subset of the Scheme programming language. To improve trust in our proof approach, we provide two different validation frameworks. The first, created with the Coq proof assistant, is a partial mechanization of the proof,...

Full description

Bibliographic Details
Main Author: Atol, Ian R
Format: Others
Published: DigitalCommons@CalPoly 2021
Online Access:https://digitalcommons.calpoly.edu/theses/2336
https://digitalcommons.calpoly.edu/cgi/viewcontent.cgi?article=3900&context=theses
Description
Summary:We present a proof of correctness for a pass of the Chez Scheme compiler over a subset of the Scheme programming language. To improve trust in our proof approach, we provide two different validation frameworks. The first, created with the Coq proof assistant, is a partial mechanization of the proof, notably implementing a formal semantics for our subset of Scheme. This framework was designed to serve as a basis for the future work of a complete mechanization of our proof. The second framework uses an existing implementation of the Scheme semantics to demonstrate correctness of the pass on a variety of individual examples. We discuss our proof and frameworks in-depth, and give a historical background on compiler correctness proofs and their mechanization.