Published January 1, 2020
| Version v1
Book chapter
Open
The Correctness of a Code Generator for a Functional Language
Authors/Creators
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 |