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...
Uloženo v:
| Vydáno v: | Proceedings of ACM on programming languages Ročník 8; číslo ICFP; s. 370 - 394 |
|---|---|
| Hlavní autoři: | , |
| 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 |