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,...
Main Author: | |
---|---|
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 |
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. |
---|