Affiliation:
1. IT University of Copenhagen, Copenhagen, Denmark
2. University of Nottingham, Nottingham, United Kingdom
Abstract
Bahr and Hutton recently developed an approach to compiler calculation that
allows a wide range of compilers to be derived from specifications of their
correctness. However, a limitation of the approach is that it results in
compilers that produce tree-structured code. By contrast, realistic
compilers produce code that is essentially graph-structured, where the edges
in the graph represent jumps that transfer the flow of control to other
locations in the code. In this article, we show how their approach can
naturally be adapted to calculate compilers that produce graph-structured
code, without changing the underlying calculational methodology, by using a
higher-order abstract syntax representation of graphs.
Funder
Engineering and Physical Sciences Research Council
Publisher
Association for Computing Machinery (ACM)
Reference37 articles.
1. Mads Sig Ager, Dariusz Biernacki, Olivier Danvy, and Jan Midtgaard. 2003. From Interpreter to Compiler and Virtual Machine: A Functional Derivation.. Department of Computer Science, University of Aarhus.
2. Syntax for Free: Representing Syntax with Binding Using Parametricity
3. Roland Backhouse. 2003. Program Construction: Calculating Implementations from Specifications. John Wiley and Sons, Inc..
4. Proving Correctness of Compilers Using Structured Graphs
5. Patrick Bahr and Graham Hutton. 2015. Calculating Correct Compilers. Journal of Functional Programming, 25 (2015).