Book section Open Access

The Correctness of a Code Generator for a Functional Language

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


DataCite XML Export

<?xml version='1.0' encoding='utf-8'?>
<resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4.1/metadata.xsd">
  <identifier identifierType="URL">https://zenodo.org/record/3965629</identifier>
  <creators>
    <creator>
      <creatorName>Courant, Nathanaël</creatorName>
      <givenName>Nathanaël</givenName>
      <familyName>Courant</familyName>
      <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="http://orcid.org/">0000-0002-8736-3060</nameIdentifier>
    </creator>
    <creator>
      <creatorName>Séré, Antoine</creatorName>
      <givenName>Antoine</givenName>
      <familyName>Séré</familyName>
    </creator>
    <creator>
      <creatorName>Shankar, Natarajan</creatorName>
      <givenName>Natarajan</givenName>
      <familyName>Shankar</familyName>
    </creator>
  </creators>
  <titles>
    <title>The Correctness of a Code Generator for a Functional Language</title>
  </titles>
  <publisher>Zenodo</publisher>
  <publicationYear>2020</publicationYear>
  <dates>
    <date dateType="Issued">2020-01-01</date>
  </dates>
  <resourceType resourceTypeGeneral="Text">Book section</resourceType>
  <alternateIdentifiers>
    <alternateIdentifier alternateIdentifierType="url">https://zenodo.org/record/3965629</alternateIdentifier>
  </alternateIdentifiers>
  <relatedIdentifiers>
    <relatedIdentifier relatedIdentifierType="DOI" relationType="IsIdenticalTo">10.1007/978-3-030-39322-9_4</relatedIdentifier>
  </relatedIdentifiers>
  <rightsList>
    <rights rightsURI="info:eu-repo/semantics/openAccess">Open Access</rights>
  </rightsList>
  <descriptions>
    <description descriptionType="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.</description>
  </descriptions>
</resource>
17
3
views
downloads
Views 17
Downloads 3
Data volume 1.1 MB
Unique views 17
Unique downloads 3

Share

Cite as