The Correctness of a Code Generator for a Functional Language
Description
Code generation is gaining popularity as a technique to bridge the gap between high-level models and executable code. We describe the theory underlying the PVS2C code generator that translates functional programs written using the PVS specification language to standalone, efficiently executable C code. We outline a correctness argument for the code generator. The techniques used are quite generic and can be applied to transform programs written in functional languages into imperative code. We use a formal model of reference counting to capture memory management and safe destructive updates for a simple first-order functional language with arrays. We exhibit a bisimulation between the functional execution and the imperative execution. This bisimulation shows that the generated imperative program returns the same result as the functional program.
Files
article.pdf
Files
(351.2 kB)
Name | Size | Download all |
---|---|---|
md5:b73c7d3b1dfe827954bb11fb6d017f67
|
351.2 kB | Preview Download |