Book section Open Access
Courant, Nathanaël;
Séré, Antoine;
Shankar, Natarajan
{ "DOI": "10.1007/978-3-030-39322-9_4", "container_title": "Lecture Notes in Computer Science", "author": [ { "family": "Courant, Nathana\u00ebl" }, { "family": "S\u00e9r\u00e9, Antoine" }, { "family": "Shankar, Natarajan" } ], "issued": { "date-parts": [ [ 2020, 1, 1 ] ] }, "abstract": "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.", "title": "The Correctness of a Code Generator for a Functional Language", "page": "68-89", "type": "chapter", "id": "3965629" }
Views | 40 |
Downloads | 19 |
Data volume | 6.7 MB |
Unique views | 39 |
Unique downloads | 19 |