Book section Open Access

The Correctness of a Code Generator for a Functional Language

Courant, Nathanaël; Séré, Antoine; Shankar, Natarajan


JSON-LD (schema.org) Export

{
  "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.", 
  "license": "", 
  "creator": [
    {
      "@id": "https://orcid.org/0000-0002-8736-3060", 
      "@type": "Person", 
      "name": "Courant, Nathana\u00ebl"
    }, 
    {
      "@type": "Person", 
      "name": "S\u00e9r\u00e9, Antoine"
    }, 
    {
      "@type": "Person", 
      "name": "Shankar, Natarajan"
    }
  ], 
  "headline": "The Correctness of a Code Generator for a Functional Language", 
  "image": "https://zenodo.org/static/img/logos/zenodo-gradient-round.svg", 
  "datePublished": "2020-01-01", 
  "url": "https://zenodo.org/record/3965629", 
  "@context": "https://schema.org/", 
  "identifier": "https://doi.org/10.1007/978-3-030-39322-9_4", 
  "@id": "https://doi.org/10.1007/978-3-030-39322-9_4", 
  "@type": "ScholarlyArticle", 
  "name": "The Correctness of a Code Generator for a Functional Language"
}
17
3
views
downloads
Views 17
Downloads 3
Data volume 1.1 MB
Unique views 17
Unique downloads 3

Share

Cite as