Book section Open Access

The Correctness of a Code Generator for a Functional Language

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


JSON Export

{
  "files": [
    {
      "links": {
        "self": "https://zenodo.org/api/files/3a3cbcf7-dc28-45f5-b78f-b2731ad07068/article.pdf"
      }, 
      "checksum": "md5:b73c7d3b1dfe827954bb11fb6d017f67", 
      "bucket": "3a3cbcf7-dc28-45f5-b78f-b2731ad07068", 
      "key": "article.pdf", 
      "type": "pdf", 
      "size": 351218
    }
  ], 
  "owners": [
    13380
  ], 
  "doi": "10.1007/978-3-030-39322-9_4", 
  "stats": {
    "version_unique_downloads": 3.0, 
    "unique_views": 17.0, 
    "views": 17.0, 
    "version_views": 17.0, 
    "unique_downloads": 3.0, 
    "version_unique_views": 17.0, 
    "volume": 1053654.0, 
    "version_downloads": 3.0, 
    "downloads": 3.0, 
    "version_volume": 1053654.0
  }, 
  "links": {
    "doi": "https://doi.org/10.1007/978-3-030-39322-9_4", 
    "latest_html": "https://zenodo.org/record/3965629", 
    "bucket": "https://zenodo.org/api/files/3a3cbcf7-dc28-45f5-b78f-b2731ad07068", 
    "badge": "https://zenodo.org/badge/doi/10.1007/978-3-030-39322-9_4.svg", 
    "html": "https://zenodo.org/record/3965629", 
    "latest": "https://zenodo.org/api/records/3965629"
  }, 
  "created": "2020-07-29T09:55:06.412509+00:00", 
  "updated": "2020-07-30T00:59:24.624309+00:00", 
  "conceptrecid": "3965628", 
  "revision": 2, 
  "id": 3965629, 
  "metadata": {
    "access_right_category": "success", 
    "doi": "10.1007/978-3-030-39322-9_4", 
    "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": {
      "id": "zenodo-freetoread-1.0"
    }, 
    "title": "The Correctness of a Code Generator for a Functional Language", 
    "journal": {
      "pages": "68-89", 
      "title": "Lecture Notes in Computer Science"
    }, 
    "relations": {
      "version": [
        {
          "count": 1, 
          "index": 0, 
          "parent": {
            "pid_type": "recid", 
            "pid_value": "3965628"
          }, 
          "is_last": true, 
          "last_child": {
            "pid_type": "recid", 
            "pid_value": "3965629"
          }
        }
      ]
    }, 
    "publication_date": "2020-01-01", 
    "creators": [
      {
        "orcid": "0000-0002-8736-3060", 
        "name": "Courant, Nathana\u00ebl"
      }, 
      {
        "name": "S\u00e9r\u00e9, Antoine"
      }, 
      {
        "name": "Shankar, Natarajan"
      }
    ], 
    "access_right": "open", 
    "resource_type": {
      "subtype": "section", 
      "type": "publication", 
      "title": "Book section"
    }
  }
}
17
3
views
downloads
Views 17
Downloads 3
Data volume 1.1 MB
Unique views 17
Unique downloads 3

Share

Cite as