Book section Open Access

The Correctness of a Code Generator for a Functional Language

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


Dublin Core Export

<?xml version='1.0' encoding='utf-8'?>
<oai_dc:dc xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
  <dc:creator>Courant, Nathanaël</dc:creator>
  <dc:creator>Séré, Antoine</dc:creator>
  <dc:creator>Shankar, Natarajan</dc:creator>
  <dc:date>2020-01-01</dc:date>
  <dc: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.</dc:description>
  <dc:identifier>https://zenodo.org/record/3965629</dc:identifier>
  <dc:identifier>10.1007/978-3-030-39322-9_4</dc:identifier>
  <dc:identifier>oai:zenodo.org:3965629</dc:identifier>
  <dc:rights>info:eu-repo/semantics/openAccess</dc:rights>
  <dc:source>Lecture Notes in Computer Science 68-89</dc:source>
  <dc:title>The Correctness of a Code Generator for a Functional Language</dc:title>
  <dc:type>info:eu-repo/semantics/bookPart</dc:type>
  <dc:type>publication-section</dc:type>
</oai_dc:dc>
17
3
views
downloads
Views 17
Downloads 3
Data volume 1.1 MB
Unique views 17
Unique downloads 3

Share

Cite as