Beyond Trees: Calculating Graph-Based Compilers (Functional Pearl)

Patrick Bahr, Graham Hutton

Research output: Journal Article or Conference Article in JournalJournal articleResearchpeer-review

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.
Original languageEnglish
Article number249
JournalProceedings of the ACM on Programming Languages
Volume8
Issue numberICFP249
Pages (from-to)370 - 394
Number of pages25
DOIs
Publication statusPublished - 15 Aug 2024
Event29th ACM SIGPLAN International Conference on Functional Programming - Milan, Italy
Duration: 3 Sept 20245 Sept 2024

Conference

Conference29th ACM SIGPLAN International Conference on Functional Programming
Country/TerritoryItaly
CityMilan
Period03/09/202405/09/2024

Keywords

  • program calculation
  • graphs
  • higher-order abstract syntax

Fingerprint

Dive into the research topics of 'Beyond Trees: Calculating Graph-Based Compilers (Functional Pearl)'. Together they form a unique fingerprint.

Cite this