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

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 compile...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Proceedings of ACM on programming languages Ročník 8; číslo ICFP; s. 370 - 394
Hlavní autoři: Bahr, Patrick, Hutton, Graham
Médium: Journal Article
Jazyk:angličtina
Vydáno: New York, NY, USA ACM 15.08.2024
Témata:
ISSN:2475-1421, 2475-1421
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
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.
AbstractList 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.
ArticleNumber 249
Author Bahr, Patrick
Hutton, Graham
Author_xml – sequence: 1
  givenname: Patrick
  orcidid: 0000-0003-1600-8261
  surname: Bahr
  fullname: Bahr, Patrick
  email: paba@itu.dk
  organization: IT University of Copenhagen, Copenhagen, Denmark
– sequence: 2
  givenname: Graham
  orcidid: 0000-0001-9584-5150
  surname: Hutton
  fullname: Hutton, Graham
  email: graham.hutton@nottingham.ac.uk
  organization: University of Nottingham, Nottingham, United Kingdom
BookMark eNpNj0tLAzEUhYNUsNbi3lV26mI0r5lM3DmDrUJBF3U93CY3OjIvkumi_75Kq7g6B87Hge-cTLq-Q0IuObvjXKX3MtMqk_kJmQql04QrwSf_-hmZx_jFGONGqlyaKSkK3PWdo-uAGB9oCY3dNjDW3QddBhg-kwIiOlr27VA3GCK9WWw7O9Z9Bw19QwjN7QU59dBEnB9zRt4XT-vyOVm9Ll_Kx1UCQpox0RpkCp4JZ7TLdaYMSBSZdiazDiA11iPTmedCbDaGC8a942gZpi4X0ks5I9eHXxv6GAP6agh1C2FXcVb92FdH-2_y6kCCbf-g33EPvMpUsA
Cites_doi 10.1145/2364527.2364546
10.1145/2364527.2364541
10.5281/zenodo.11233589
10.1145/2535838.2535841
10.1109/LICS.2000.855774
10.1090/psapm/019/0242403
10.1007/978-3-642-02273-9_5
10.1145/1411204.1411226
10.1007/978-3-540-27764-4_12
10.1145/3122955.3122956
10.1145/3290317
10.1007/978-3-319-07151-0_14
10.1145/224164.224193
10.1145/237721.240882
10.1145/3607855
10.1145/1863523.1863539
10.1017/S0956796801004075
10.1145/199448.199530
ContentType Journal Article
Copyright Owner/Author
Copyright_xml – notice: Owner/Author
DBID AAYXX
CITATION
DOI 10.1145/3674638
DatabaseName CrossRef
DatabaseTitle CrossRef
DatabaseTitleList
CrossRef
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISSN 2475-1421
EndPage 394
ExternalDocumentID 10_1145_3674638
3674638
GrantInformation_xml – fundername: Engineering and Physical Sciences Research Council
  grantid: EP\/Y010744\/1
  funderid: https:\/\/doi.org\/10.13039\/501100000266
GroupedDBID AAKMM
AAYFX
ACM
ADPZR
AIKLT
ALMA_UNASSIGNED_HOLDINGS
GUFHI
LHSKQ
M~E
OK1
ROL
AAYXX
AEFXT
AEJOY
AKRVB
CITATION
ID FETCH-LOGICAL-a239t-77a35af02d97d87649a3e267d96cdaa59cfe076f122bb91201fd1ec0e5d823f33
ISICitedReferencesCount 0
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=001316672600008&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
ISSN 2475-1421
IngestDate Sat Nov 29 07:47:26 EST 2025
Fri Feb 21 01:27:37 EST 2025
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed true
IsScholarly true
Issue ICFP
Keywords program calculation
graphs
higher-order abstract syntax
Language English
License This work is licensed under a Creative Commons Attribution International 4.0 License.
LinkModel OpenURL
MergedId FETCHMERGED-LOGICAL-a239t-77a35af02d97d87649a3e267d96cdaa59cfe076f122bb91201fd1ec0e5d823f33
ORCID 0000-0003-1600-8261
0000-0001-9584-5150
OpenAccessLink https://dl.acm.org/doi/10.1145/3674638
PageCount 25
ParticipantIDs crossref_primary_10_1145_3674638
acm_primary_3674638
PublicationCentury 2000
PublicationDate 2024-08-15
PublicationDateYYYYMMDD 2024-08-15
PublicationDate_xml – month: 08
  year: 2024
  text: 2024-08-15
  day: 15
PublicationDecade 2020
PublicationPlace New York, NY, USA
PublicationPlace_xml – name: New York, NY, USA
PublicationTitle Proceedings of ACM on programming languages
PublicationTitleAbbrev ACM PACMPL
PublicationYear 2024
Publisher ACM
Publisher_xml – name: ACM
References Ramana Kumar, Magnus O. Myreen, Michael Norrish, and Scott Owens. 2014. CakeML: A Verified Implementation of ML. ACM SIGPLAN Notices, 49, 1 (2014).
Patrick Bahr and Graham Hutton. 2024. Supplementary Material for “Beyond Trees: Calculating Graph-Based Compilers”. https://doi.org/10.5281/zenodo.11233589 10.5281/zenodo.11233589
Patrick Bahr and Graham Hutton. 2020. Calculating Correct Compilers II: Return of the Register Machines. Journal of Functional Programming, 30 (2020).
Robert Atkey. 2009. Syntax for Free: Representing Syntax with Binding Using Parametricity. In Typed Lambda Calculi and Applications (Lecture Notes in Computer Science, Vol. 5608).
Lars Birkedal, Aleš Bizjak, Ranald Clouston, Hans Bugge Grathwohl, Bas Spitters, and Andrea Vezzosi. 2016. Guarded Cubical Type Theory: Path Equality for Guarded Recursion. Schloss-Dagstuhl - Leibniz Zentrum für Informatik.
Venanzio Capretta. 2005. General Recursion via Coinductive Types. Logical Methods in Computer Science, 1, 2 (2005).
N.G de Bruijn. 1972. Lambda Calculus Notation with Nameless Dummies, A Tool for Automatic Formula Manipulation, with Application to the Church-Rosser Theorem. Indagationes Mathematicae, 75, 5 (1972).
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.
Andrey Mokhov. 2017. Algebraic Graphs with Class (Functional Pearl). In Proceedings of the 10th Symposium on Haskell.
Norman Ramsey and João Dias. 2006. An Applicative Control-Flow Graph Based on Huet’s Zipper. In Proceedings of the Workshop on ML.
Edwin Brady. 2017. Type-Driven Development with Idris. Manning Publications.
John McCarthy and James Painter. 1967. Correctness of a Compiler for Arithmetic Expressions. In Mathematical Aspects of Computer Science (Proceedings of Symposia in Applied Mathematics, Vol. 19). American Mathematical Society.
Norman Ramsey, João Dias, and Simon Peyton Jones. 2010. Hoopl: A Modular, Reusable Library for Dataflow Analysis and Transformation. In Proceedings of the Third Symposium on Haskell.
David King and John Launchbury. 1995. Structuring Depth-First Search Algorithms in Haskell. In Proceedings of the 22nd Symposium on Principles of Programming Languages.
Patrick Bahr and Graham Hutton. 2022. Monadic Compiler Calculation. Proceedings of the ACM on Programming Languages, 6, ICFP (2022), Article 93.
Ulf Norell. 2007. Towards a Practical Programming Language Based on Dependent Type Theory. Chalmers University of Technology.
Mitchell Wand. 1982. Deriving Target Code as a Representation of Continuation Semantics. ACM Transactions on Programming Languanges and Systems, 4, 3 (1982).
Jeremy Gibbons. 2021. Continuation-Passing Style, Defunctionalization, Accumulations, and Associativity. The Art, Science, and Engineering of Programming, 6, 2 (2021).
Graham Hutton and Joel Wright. 2004. Compiling Exceptions Correctly. In Proceedings of the International Conference on Mathematics of Program Construction (Lecture Notes in Computer Science, Vol. 3125).
Mitchell Wand. 1995. Compiler Correctness for Parallel Languages. In Proceedings of the Seventh International Conference on Functional Programming Languages and Computer Architecture.
Patrick Bahr. 2014. Proving Correctness of Compilers Using Structured Graphs. In Functional and Logic Programming (Lecture Notes in Computer Science, Vol. 8475).
Nils Anders Danielsson and Thorsten Altenkirch. 2010. Subtyping, Declaratively. In Proceedings of the International Conference on Mathematics of Program Construction. 6120, Lecture Notes in Computer Science
Erik Meijer. 1992. Calculating Compilers. Katholieke Universiteit Nijmegen.
Adam Chlipala. 2008. Parametric Higher-Order Abstract Syntax for Mechanized Semantics. In Proceedings of the International Conference on Functional Programming.
Nils Anders Danielsson. 2012. Operational Semantics Using the Partiality Monad. In Proceedings of the International Conference on Functional Programming.
Roland Backhouse. 2003. Program Construction: Calculating Implementations from Specifications. John Wiley and Sons, Inc..
Yugo Kashiwagi and David Wise. 1991. Graph Algorithms in a Lazy Functional Programming Language.
Hiroshi Nakano. 2000. A Modality for Recursion. In Proceedings of the 15th Annual IEEE Symposium on Logic in Computer Science.
Graham Hutton and Patrick Bahr. 2017. Compiling a 50-Year Journey. Journal of Functional Programming, 27 (2017).
Rasmus Ejlers Møgelberg and Niccolò Veltri. 2019. Bisimulation As Path Type for Guarded Recursive Types. Proceedings of the ACM on Programming Languages, 3, POPL (2019).
Xavier Leroy. 2009. Formal Verification of a Realistic Compiler. Commun. ACM, 52, 7 (2009).
Bruno Oliveira and William Cook. 2012. Functional Programming with Structured Graphs. In Proceedings of the International Conference on Functional Programming.
Mitchell Pickard and Graham Hutton. 2021. Calculating Dependently-Typed Compilers. Proceedings of the ACM on Programming Languages, 5, ICFP (2021), Article 82.
Martin Erwig. 2001. Inductive Graphs and Functional Graph Algorithms. Journal of Functional Programming, 11, 5 (2001).
John Hughes, Lars Pareto, and Amr Sabry. 1996. Proving the Correctness of Reactive Systems Using Sized Types. In Proceedings of the 23rd Symposium on Principles of Programming Languages.
Patrick Bahr and Graham Hutton. 2023. Calculating Compilers for Concurrency. Proceedings of the ACM on Programming Languages, 7, ICFP (2023), Article 213.
Patrick Bahr and Graham Hutton. 2015. Calculating Correct Compilers. Journal of Functional Programming, 25 (2015).
Danielsson Nils Anders (e_1_2_1_15_1) 2010
Brady Edwin (e_1_2_1_11_1)
Ramsey Norman (e_1_2_1_34_1) 2006
Gibbons Jeremy (e_1_2_1_18_1) 2021
Birkedal Lars (e_1_2_1_10_1) 2016
Wand Mitchell (e_1_2_1_36_1) 1982; 4
e_1_2_1_23_1
e_1_2_1_24_1
e_1_2_1_21_1
Bahr Patrick (e_1_2_1_7_1) 2022
e_1_2_1_22_1
Backhouse Roland (e_1_2_1_3_1) 2003
e_1_2_1_27_1
e_1_2_1_28_1
e_1_2_1_26_1
Hutton Graham (e_1_2_1_20_1) 2017
Capretta Venanzio (e_1_2_1_12_1) 2005
Bahr Patrick (e_1_2_1_6_1) 2020
e_1_2_1_29_1
Pickard Mitchell (e_1_2_1_33_1) 2021
Norell Ulf (e_1_2_1_31_1)
Leroy Xavier (e_1_2_1_25_1) 2009
e_1_2_1_8_1
e_1_2_1_30_1
e_1_2_1_35_1
e_1_2_1_4_1
e_1_2_1_13_1
e_1_2_1_2_1
e_1_2_1_32_1
e_1_2_1_17_1
Ager Mads Sig (e_1_2_1_1_1)
e_1_2_1_14_1
de Bruijn N.G (e_1_2_1_16_1) 1972
e_1_2_1_37_1
Bahr Patrick (e_1_2_1_5_1) 2015
e_1_2_1_9_1
e_1_2_1_19_1
References_xml – reference: Edwin Brady. 2017. Type-Driven Development with Idris. Manning Publications.
– reference: Hiroshi Nakano. 2000. A Modality for Recursion. In Proceedings of the 15th Annual IEEE Symposium on Logic in Computer Science.
– reference: Lars Birkedal, Aleš Bizjak, Ranald Clouston, Hans Bugge Grathwohl, Bas Spitters, and Andrea Vezzosi. 2016. Guarded Cubical Type Theory: Path Equality for Guarded Recursion. Schloss-Dagstuhl - Leibniz Zentrum für Informatik.
– reference: Adam Chlipala. 2008. Parametric Higher-Order Abstract Syntax for Mechanized Semantics. In Proceedings of the International Conference on Functional Programming.
– reference: Norman Ramsey, João Dias, and Simon Peyton Jones. 2010. Hoopl: A Modular, Reusable Library for Dataflow Analysis and Transformation. In Proceedings of the Third Symposium on Haskell.
– reference: N.G de Bruijn. 1972. Lambda Calculus Notation with Nameless Dummies, A Tool for Automatic Formula Manipulation, with Application to the Church-Rosser Theorem. Indagationes Mathematicae, 75, 5 (1972).
– reference: Robert Atkey. 2009. Syntax for Free: Representing Syntax with Binding Using Parametricity. In Typed Lambda Calculi and Applications (Lecture Notes in Computer Science, Vol. 5608).
– reference: Patrick Bahr and Graham Hutton. 2024. Supplementary Material for “Beyond Trees: Calculating Graph-Based Compilers”. https://doi.org/10.5281/zenodo.11233589 10.5281/zenodo.11233589
– reference: Patrick Bahr and Graham Hutton. 2023. Calculating Compilers for Concurrency. Proceedings of the ACM on Programming Languages, 7, ICFP (2023), Article 213.
– reference: Patrick Bahr. 2014. Proving Correctness of Compilers Using Structured Graphs. In Functional and Logic Programming (Lecture Notes in Computer Science, Vol. 8475).
– reference: Patrick Bahr and Graham Hutton. 2022. Monadic Compiler Calculation. Proceedings of the ACM on Programming Languages, 6, ICFP (2022), Article 93.
– reference: Mitchell Pickard and Graham Hutton. 2021. Calculating Dependently-Typed Compilers. Proceedings of the ACM on Programming Languages, 5, ICFP (2021), Article 82.
– reference: Nils Anders Danielsson and Thorsten Altenkirch. 2010. Subtyping, Declaratively. In Proceedings of the International Conference on Mathematics of Program Construction. 6120, Lecture Notes in Computer Science
– reference: Mitchell Wand. 1982. Deriving Target Code as a Representation of Continuation Semantics. ACM Transactions on Programming Languanges and Systems, 4, 3 (1982).
– reference: Graham Hutton and Joel Wright. 2004. Compiling Exceptions Correctly. In Proceedings of the International Conference on Mathematics of Program Construction (Lecture Notes in Computer Science, Vol. 3125).
– reference: Norman Ramsey and João Dias. 2006. An Applicative Control-Flow Graph Based on Huet’s Zipper. In Proceedings of the Workshop on ML.
– reference: Patrick Bahr and Graham Hutton. 2020. Calculating Correct Compilers II: Return of the Register Machines. Journal of Functional Programming, 30 (2020).
– reference: Martin Erwig. 2001. Inductive Graphs and Functional Graph Algorithms. Journal of Functional Programming, 11, 5 (2001).
– reference: David King and John Launchbury. 1995. Structuring Depth-First Search Algorithms in Haskell. In Proceedings of the 22nd Symposium on Principles of Programming Languages.
– reference: John Hughes, Lars Pareto, and Amr Sabry. 1996. Proving the Correctness of Reactive Systems Using Sized Types. In Proceedings of the 23rd Symposium on Principles of Programming Languages.
– reference: John McCarthy and James Painter. 1967. Correctness of a Compiler for Arithmetic Expressions. In Mathematical Aspects of Computer Science (Proceedings of Symposia in Applied Mathematics, Vol. 19). American Mathematical Society.
– reference: Jeremy Gibbons. 2021. Continuation-Passing Style, Defunctionalization, Accumulations, and Associativity. The Art, Science, and Engineering of Programming, 6, 2 (2021).
– reference: Graham Hutton and Patrick Bahr. 2017. Compiling a 50-Year Journey. Journal of Functional Programming, 27 (2017).
– reference: Mitchell Wand. 1995. Compiler Correctness for Parallel Languages. In Proceedings of the Seventh International Conference on Functional Programming Languages and Computer Architecture.
– reference: 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.
– reference: Bruno Oliveira and William Cook. 2012. Functional Programming with Structured Graphs. In Proceedings of the International Conference on Functional Programming.
– reference: Xavier Leroy. 2009. Formal Verification of a Realistic Compiler. Commun. ACM, 52, 7 (2009).
– reference: Erik Meijer. 1992. Calculating Compilers. Katholieke Universiteit Nijmegen.
– reference: Ulf Norell. 2007. Towards a Practical Programming Language Based on Dependent Type Theory. Chalmers University of Technology.
– reference: Nils Anders Danielsson. 2012. Operational Semantics Using the Partiality Monad. In Proceedings of the International Conference on Functional Programming.
– reference: Roland Backhouse. 2003. Program Construction: Calculating Implementations from Specifications. John Wiley and Sons, Inc..
– reference: Ramana Kumar, Magnus O. Myreen, Michael Norrish, and Scott Owens. 2014. CakeML: A Verified Implementation of ML. ACM SIGPLAN Notices, 49, 1 (2014).
– reference: Andrey Mokhov. 2017. Algebraic Graphs with Class (Functional Pearl). In Proceedings of the 10th Symposium on Haskell.
– reference: Rasmus Ejlers Møgelberg and Niccolò Veltri. 2019. Bisimulation As Path Type for Guarded Recursive Types. Proceedings of the ACM on Programming Languages, 3, POPL (2019).
– reference: Patrick Bahr and Graham Hutton. 2015. Calculating Correct Compilers. Journal of Functional Programming, 25 (2015).
– reference: Yugo Kashiwagi and David Wise. 1991. Graph Algorithms in a Lazy Functional Programming Language.
– reference: Venanzio Capretta. 2005. General Recursion via Coinductive Types. Logical Methods in Computer Science, 1, 2 (2005).
– volume-title: Program Construction: Calculating Implementations from Specifications
  year: 2003
  ident: e_1_2_1_3_1
– ident: e_1_2_1_14_1
  doi: 10.1145/2364527.2364546
– ident: e_1_2_1_27_1
– volume-title: Towards a Practical Programming Language Based on Dependent Type Theory
  ident: e_1_2_1_31_1
– volume-title: Proceedings of the ACM on Programming Languages, 5, ICFP
  year: 2021
  ident: e_1_2_1_33_1
– ident: e_1_2_1_32_1
  doi: 10.1145/2364527.2364541
– ident: e_1_2_1_9_1
  doi: 10.5281/zenodo.11233589
– volume-title: Declaratively. In Proceedings of the International Conference on Mathematics of Program Construction. 6120
  year: 2010
  ident: e_1_2_1_15_1
– volume-title: General Recursion via Coinductive Types. Logical Methods in Computer Science, 1, 2
  year: 2005
  ident: e_1_2_1_12_1
– volume-title: Compiling a 50-Year Journey. Journal of Functional Programming, 27
  year: 2017
  ident: e_1_2_1_20_1
– ident: e_1_2_1_24_1
  doi: 10.1145/2535838.2535841
– ident: e_1_2_1_30_1
  doi: 10.1109/LICS.2000.855774
– volume-title: Formal Verification of a Realistic Compiler. Commun. ACM, 52, 7
  year: 2009
  ident: e_1_2_1_25_1
– ident: e_1_2_1_26_1
  doi: 10.1090/psapm/019/0242403
– ident: e_1_2_1_2_1
  doi: 10.1007/978-3-642-02273-9_5
– volume-title: Bas Spitters, and Andrea Vezzosi.
  year: 2016
  ident: e_1_2_1_10_1
– volume-title: Type-Driven Development with Idris
  ident: e_1_2_1_11_1
– ident: e_1_2_1_13_1
  doi: 10.1145/1411204.1411226
– volume-title: The Art, Science, and Engineering of Programming, 6, 2
  year: 2021
  ident: e_1_2_1_18_1
– ident: e_1_2_1_21_1
  doi: 10.1007/978-3-540-27764-4_12
– volume-title: Calculating Correct Compilers. Journal of Functional Programming, 25
  year: 2015
  ident: e_1_2_1_5_1
– ident: e_1_2_1_28_1
  doi: 10.1145/3122955.3122956
– ident: e_1_2_1_29_1
  doi: 10.1145/3290317
– ident: e_1_2_1_4_1
  doi: 10.1007/978-3-319-07151-0_14
– volume-title: Proceedings of the ACM on Programming Languages, 6, ICFP
  year: 2022
  ident: e_1_2_1_7_1
– ident: e_1_2_1_37_1
  doi: 10.1145/224164.224193
– ident: e_1_2_1_22_1
– volume-title: Proceedings of the Workshop on ML.
  year: 2006
  ident: e_1_2_1_34_1
– volume-title: A Tool for Automatic Formula Manipulation, with Application to the Church-Rosser Theorem. Indagationes Mathematicae, 75, 5
  year: 1972
  ident: e_1_2_1_16_1
– volume: 4
  year: 1982
  ident: e_1_2_1_36_1
  article-title: Deriving Target Code as a Representation of Continuation Semantics
  publication-title: ACM Transactions on Programming Languanges and Systems
– volume-title: From Interpreter to Compiler and Virtual Machine: A Functional Derivation.. Department of Computer Science
  ident: e_1_2_1_1_1
– volume-title: Calculating Correct Compilers II: Return of the Register Machines. Journal of Functional Programming, 30
  year: 2020
  ident: e_1_2_1_6_1
– ident: e_1_2_1_19_1
  doi: 10.1145/237721.240882
– ident: e_1_2_1_8_1
  doi: 10.1145/3607855
– ident: e_1_2_1_35_1
  doi: 10.1145/1863523.1863539
– ident: e_1_2_1_17_1
  doi: 10.1017/S0956796801004075
– ident: e_1_2_1_23_1
  doi: 10.1145/199448.199530
SSID ssj0001934839
Score 2.2650325
Snippet Bahr and Hutton recently developed an approach to compiler calculation that allows a wide range of compilers to be derived from specifications of their...
SourceID crossref
acm
SourceType Index Database
Publisher
StartPage 370
SubjectTerms Compilers
Formal software verification
Logic and verification
Program verification
Software and its engineering
Theory of computation
SubjectTermsDisplay Software and its engineering -- Compilers
Software and its engineering -- Formal software verification
Theory of computation -- Logic and verification
Theory of computation -- Program verification
Title Beyond Trees: Calculating Graph-Based Compilers (Functional Pearl)
URI https://dl.acm.org/doi/10.1145/3674638
Volume 8
WOSCitedRecordID wos001316672600008&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
journalDatabaseRights – providerCode: PRVHPJ
  databaseName: ROAD: Directory of Open Access Scholarly Resources
  customDbUrl:
  eissn: 2475-1421
  dateEnd: 99991231
  omitProxy: false
  ssIdentifier: ssj0001934839
  issn: 2475-1421
  databaseCode: M~E
  dateStart: 20170101
  isFulltext: true
  titleUrlDefault: https://road.issn.org
  providerName: ISSN International Centre
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV29T90wELco7cACLS3iq5UHBjpETWwnttngiSc6gN7wkNiQYzuiAsJTeCAm_nbOH3mxaAcYuliR7Xjwz7o7n-_uh9BeXlci15JkFvRDxgriHgk1zahQtq6sqnUtPNkEPzsTFxdyEinh7z2dAG9b8fQkZ_8VaugDsF3q7DvgXiwKHfANoEMLsEP7JuBjTsq0syHcbaRutOfo8p4mNbvKjkBzGS8JQCR03u06BvUWvYIgJLub3kEQzdbJQs35yI_D0al7ZIixXbdu5d7vOXjd1VU3cABcD8dnHgP2Q4526nUAGF0V2DI5JzGS3UsqwniZFSykOvdiVSSn5_doPEmkJA1cIVHh0sBy_LcsZ67sBa04q0IBmFeFsePIB_SRwKXH0XacPif-NUkZGH8hT9qt9SvOd2aIvk3MkMSemH5Gq_EigA8DgF_Qkm3X0VpPsoGjzP2KjgKe2ON5gBM0cYImXqCJ9wcsscfy5zd0Pj6ejk6ySHyRKULlHG48ipaqyYmR3IC6YlJRSypuZKWNUqXUjc151RSE1LUswIZrTGF1bksjCG0o3UDL7V1rNxGGMcuIAZtES8YUkZqLghojBbdcKb6F1mE3LmehtMll3KMthPvdWQyFDPayn7L9zx930MpwWnbR8rx7sN_RJ_04_3Pf_fAIvQBIi0UM
linkProvider ISSN International Centre
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Beyond+Trees%3A+Calculating+Graph-Based+Compilers+%28Functional+Pearl%29&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Bahr%2C+Patrick&rft.au=Hutton%2C+Graham&rft.date=2024-08-15&rft.pub=ACM&rft.eissn=2475-1421&rft.volume=8&rft.issue=ICFP&rft.spage=370&rft.epage=394&rft_id=info:doi/10.1145%2F3674638&rft.externalDocID=3674638
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon