A Typed Multi-level Datalog IR and Its Compiler Framework
The resurgence of Datalog in the last two decades has led to a multitude of new Datalog systems. These systems explore novel ideas for improving Datalog's programmability and performance, making important contributions to the field. Unfortunately, the individual systems progress at a much slowe...
Saved in:
| Published in: | Proceedings of ACM on programming languages Vol. 8; no. OOPSLA2; pp. 1586 - 1614 |
|---|---|
| Main Authors: | , , |
| Format: | Journal Article |
| Language: | English |
| Published: |
New York, NY, USA
ACM
08.10.2024
|
| Subjects: | |
| ISSN: | 2475-1421, 2475-1421 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Abstract | The resurgence of Datalog in the last two decades has led to a multitude of new Datalog systems. These systems explore novel ideas for improving Datalog's programmability and performance, making important contributions to the field. Unfortunately, the individual systems progress at a much slower pace than the overall field, because improvements in one system are rarely ported to other systems. The reason for this rift is that each system provides its own Datalog dialect with specific notation, language features, and invariants, enabling specific optimization and execution strategies. This paper presents the first compiler framework for Datalog that can be used to support any Datalog frontend language and to target any Datalog backend. The centerpiece of our framework is a novel typed multi-level Datalog IR that supports IR extensions and guarantees executability. Existing Datalog systems can provide a compiler frontend that translates their Datalog dialect to the extended IR. The IR is then progressively lowered toward core Datalog, allowing optimizations at each level. At last, compiler backends can target different Datalog solvers. We have implemented the compiler framework and integrated 4 Datalog frontends and 3 Datalog backends, using 16 IR extensions. We also formalize the IR's flexible type system, which is bidirectional, flow-sensitive, bipolar, and uses three-valued typing contexts. The type system simultaneously validates type compatibility and precisely tracks bindings of logic variables while permitting IR extensions. |
|---|---|
| AbstractList | The resurgence of Datalog in the last two decades has led to a multitude of new Datalog systems. These systems explore novel ideas for improving Datalog's programmability and performance, making important contributions to the field. Unfortunately, the individual systems progress at a much slower pace than the overall field, because improvements in one system are rarely ported to other systems. The reason for this rift is that each system provides its own Datalog dialect with specific notation, language features, and invariants, enabling specific optimization and execution strategies. This paper presents the first compiler framework for Datalog that can be used to support any Datalog frontend language and to target any Datalog backend. The centerpiece of our framework is a novel typed multi-level Datalog IR that supports IR extensions and guarantees executability. Existing Datalog systems can provide a compiler frontend that translates their Datalog dialect to the extended IR. The IR is then progressively lowered toward core Datalog, allowing optimizations at each level. At last, compiler backends can target different Datalog solvers. We have implemented the compiler framework and integrated 4 Datalog frontends and 3 Datalog backends, using 16 IR extensions. We also formalize the IR's flexible type system, which is bidirectional, flow-sensitive, bipolar, and uses three-valued typing contexts. The type system simultaneously validates type compatibility and precisely tracks bindings of logic variables while permitting IR extensions. |
| ArticleNumber | 327 |
| Author | Erdweg, Sebastian Pacak, André Klopp, David |
| Author_xml | – sequence: 1 givenname: David orcidid: 0009-0006-9848-2029 surname: Klopp fullname: Klopp, David email: davklopp@uni-mainz.de organization: JGU Mainz, Mainz, Germany – sequence: 2 givenname: Sebastian orcidid: 0000-0002-1974-5956 surname: Erdweg fullname: Erdweg, Sebastian email: erdweg@uni-mainz.de organization: JGU Mainz, Mainz, Germany – sequence: 3 givenname: André orcidid: 0000-0001-7441-6955 surname: Pacak fullname: Pacak, André email: pacak@uni-mainz.de organization: JGU Mainz, Mainz, Germany |
| BookMark | eNpNj0tLAzEUhYNUsNbi3lV2rkZvHvPIslSrAxVBZj_EuTcymnmQjEr_vUqruDoHzseB75TN-qEnxs4FXAmh02uVFSbP8iM2lzpPE6GlmP3rJ2wZ4ysACKN0ocycmRWvdiMhf3j3U5t4-iDPb-xk_fDCyydue-TlFPl66MbWU-CbYDv6HMLbGTt21kdaHnLBqs1ttb5Pto935Xq1TaxUZkrSwglNmrABKkgiFEBEGSpw6ACoEcqBSMFIoxQ-a4ONVRpRArkUUS3Y5f62CUOMgVw9hrazYVcLqH-c64PzN3mxJ23T_UG_4xf9g1Gn |
| Cites_doi | 10.1145/2908080.2908096 10.1109/CGO.2004.1281665 10.1145/1836089.1836094 10.1145/3428209 10.1561/1900000017 10.1145/3564719.3568686 10.1007/978-3-031-16767-6_5 10.4230/LIPIcs.ECOOP.2016.2 10.1145/3453483.3454026 10.1007/s10270-016-0530-4 10.1145/1028976.1029007 10.1007/978-3-662-44202-9_20 10.1145/3276509 10.5555/2523721.2523727 10.1145/1707801.1706317 10.1145/3622818 10.1007/978-3-642-24206-9_16 10.1007/11785477_2 10.1145/2837614.2837644 10.1145/996841.996859 10.1109/ASWEC.2015.15 10.1145/3591239 10.1145/3497776.3517779 10.1145/2951913.2951948 10.1145/1640089.1640108 10.1145/3689713 10.1145/3428193 10.1145/3622824 10.1145/2500365.2500596 10.14778/3282495.3282500 10.1145/1376916.1376957 10.1109/CGO51591.2021.9370308 10.1145/2892208.2892226 10.4230/LIPIcs.ECOOP.2022.7 10.1007/978-1-4684-3384-5 10.1145/2970276.2970298 |
| ContentType | Journal Article |
| Copyright | Owner/Author |
| Copyright_xml | – notice: Owner/Author |
| DBID | AAYXX CITATION |
| DOI | 10.1145/3689767 |
| DatabaseName | CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | CrossRef |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 2475-1421 |
| EndPage | 1614 |
| ExternalDocumentID | 10_1145_3689767 3689767 |
| GrantInformation_xml | – fundername: Deutsche Forschungsgemeinschaft grantid: 451545561 funderid: https:\/\/doi.org\/10.13039\/501100001659 |
| GroupedDBID | AAKMM AAYFX ACM ADPZR AIKLT ALMA_UNASSIGNED_HOLDINGS GUFHI LHSKQ M~E OK1 ROL AAYXX AEFXT AEJOY AKRVB CITATION |
| ID | FETCH-LOGICAL-a239t-58f14e4edc0e8e2d080eee6d30fdf00ec13f015092933db49dca34dd20ef5dd3 |
| ISICitedReferencesCount | 0 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=001360845100017&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:46:59 EST 2025 Fri Feb 21 01:26:37 EST 2025 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | OOPSLA2 |
| Keywords | compiler framework multi-level IR Datalog type system |
| Language | English |
| License | This work is licensed under a Creative Commons Attribution International 4.0 License. |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-a239t-58f14e4edc0e8e2d080eee6d30fdf00ec13f015092933db49dca34dd20ef5dd3 |
| ORCID | 0009-0006-9848-2029 0000-0001-7441-6955 0000-0002-1974-5956 |
| OpenAccessLink | https://dl.acm.org/doi/10.1145/3689767 |
| PageCount | 29 |
| ParticipantIDs | crossref_primary_10_1145_3689767 acm_primary_3689767 |
| PublicationCentury | 2000 |
| PublicationDate | 2024-10-08 |
| PublicationDateYYYYMMDD | 2024-10-08 |
| PublicationDate_xml | – month: 10 year: 2024 text: 2024-10-08 day: 08 |
| 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 | Magnus Madsen, Ming-Ho Yee, and Ondrej Lhoták. 2016. From Datalog to Flix: A declarative language for fixed points on lattices. In Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2016, Santa Barbara, CA, USA, June 13-17, 2016, Chandra Krintz and Emery Berger (Eds.). ACM, 194–208. https://doi.org/10.1145/2908080.2908096 10.1145/2908080.2908096 Martin Bravenboer and Eelco Visser. 2004. Concrete syntax for objects: domain-specific language embedding and assimilation without restrictions. In Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2004, October 24-28, 2004, Vancouver, BC, Canada, John M. Vlissides and Douglas C. Schmidt (Eds.). ACM, 365–383. https://doi.org/10.1145/1028976.1029007 10.1145/1028976.1029007 Tamás Szabó, Sebastian Erdweg, and Markus Voelter. 2016. IncA: a DSL for the definition of incremental program analyses. In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, ASE 2016, Singapore, September 3-7, 2016, David Lo, Sven Apel, and Sarfraz Khurshid (Eds.). ACM, 320–331. https://doi.org/10.1145/2970276.2970298 10.1145/2970276.2970298 Samuel Arch, Xiaowen Hu, David Zhao, Pavle Subotic, and Bernhard Scholz. 2022. Building a Join Optimizer for Soufflé. In Logic-Based Program Synthesis and Transformation - 32nd International Symposium, LOPSTR 2022, Tbilisi, Georgia, September 21-23, 2022, Proceedings, Alicia Villanueva (Ed.) (Lecture Notes in Computer Science, Vol. 13474). Springer, 83–102. https://doi.org/10.1007/978-3-031-16767-6_5 10.1007/978-3-031-16767-6_5 Michael Arntzenius and Neelakantan R. Krishnaswami. 2016. Datafun: A Functional Datalog. In Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming, ICFP 2016, Nara, Japan, September 18-22, 2016, Jacques Garrigue, Gabriele Keller, and Eijiro Sumii (Eds.). ACM, 214–227. https://doi.org/10.1145/2951913.2951948 10.1145/2951913.2951948 Bernhard Scholz, Herbert Jordan, Pavle Subotic, and Till Westmann. 2016. On fast large-scale program analysis in Datalog. In Proceedings of the 25th International Conference on Compiler Construction, CC 2016, Barcelona, Spain, March 12-18, 2016, Ayal Zaks and Manuel V. Hermenegildo (Eds.). ACM, 196–206. https://doi.org/10.1145/2892208.2892226 10.1145/2892208.2892226 Peter Alvaro, William R. Marczak, Neil Conway, Joseph M. Hellerstein, David Maier, and Russell Sears. 2010. Dedalus: Datalog in Time and Space. In Datalog Reloaded - First International Workshop, Datalog 2010, Oxford, UK, March 16-19, 2010. Revised Selected Papers, Oege de Moor, Georg Gottlob, Tim Furche, and Andrew Jon Sellers (Eds.) (Lecture Notes in Computer Science, Vol. 6702). Springer, 262–281. https://doi.org/10.1007/978-3-642-24206-9_16 10.1007/978-3-642-24206-9_16 Herbert Jordan, Simone Pellegrini, Peter Thoman, Klaus Kofler, and Thomas Fahringer. 2013. INSPIRE: the insieme parallel intermediate representation. In Proceedings of the 22nd International Conference on Parallel Architectures and Compilation Techniques (PACT ’13). IEEE Press, 7–18. isbn:9781479910212 Aaron Bembenek, Michael Greenberg, and Stephen Chong. 2020. Formulog: Datalog for SMT-based static analysis. Proc. ACM Program. Lang., 4, OOPSLA (2020), 141:1–141:31. https://doi.org/10.1145/3428209 10.1145/3428209 Tamás Szabó, Sebastian Erdweg, and Gábor Bergmann. 2021. Incremental whole-program analysis in Datalog with lattices. In PLDI ’21: 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, Virtual Event, Canada, June 20-25, 2021, Stephen N. Freund and Eran Yahav (Eds.). ACM, 1–15. https://doi.org/10.1145/3453483.3454026 10.1145/3453483.3454026 Leonid Ryzhyk and Mihai Budiu. 2019. Differential Datalog. In Datalog 2.0 2019 - 3rd International Workshop on the Resurgence of Datalog in Academia and Industry co-located with the 15th International Conference on Logic Programming and Nonmonotonic Reasoning (LPNMR 2019) at the Philadelphia Logic Week 2019, Philadelphia, PA (USA), June 4-5, 2019, Mario Alviano and Andreas Pieris (Eds.) (CEUR Workshop Proceedings, Vol. 2368). CEUR-WS.org, 56–67. http://ceur-ws.org/Vol-2368/paper6.pdf Todd J. Green, Shan Shan Huang, Boon Thau Loo, and Wenchao Zhou. 2013. Datalog and Recursive Query Processing. Found. Trends Databases, 5, 2 (2013), nov, 105–195. issn:1931-7883 https://doi.org/10.1561/1900000017 10.1561/1900000017 Chris Lattner, Mehdi Amini, Uday Bondhugula, Albert Cohen, Andy Davis, Jacques A. Pienaar, River Riddle, Tatiana Shpeisman, Nicolas Vasilache, and Oleksandr Zinenko. 2021. MLIR: Scaling Compiler Infrastructure for Domain Specific Computation. In IEEE/ACM International Symposium on Code Generation and Optimization, CGO 2021, Seoul, South Korea, February 27 - March 3, 2021, Jae W. Lee, Mary Lou Soffa, and Ayal Zaks (Eds.). IEEE, 2–14. https://doi.org/10.1109/CGO51591.2021.9370308 10.1109/CGO51591.2021.9370308 Roland Leiß a, Marcel Köster, and Sebastian Hack. 2015. A graph-based higher-order intermediate representation. 2015 IEEE/ACM International Symposium on Code Generation and Optimization (CGO), 202–212. https://api.semanticscholar.org/CorpusID:12679069 Magnus Madsen and Ondrej Lhoták. 2020. Fixpoints for the masses: programming with first-class Datalog constraints. Proc. ACM Program. Lang., 4, OOPSLA (2020), 125:1–125:28. https://doi.org/10.1145/3428193 10.1145/3428193 K. Tuncay Tekle and Yanhong A. Liu. 2010. Precise complexity analysis for efficient datalog queries. In Proceedings of the 12th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming, July 26-28, 2010, Hagenberg, Austria, Temur Kutsia, Wolfgang Schreiner, and Maribel Fernández (Eds.). ACM, 35–44. https://doi.org/10.1145/1836089.1836094 10.1145/1836089.1836094 André Pacak and Sebastian Erdweg. 2023. Interactive Debugging of Datalog Programs. Proc. ACM Program. Lang., 7, OOPSLA2 (2023), 745–772. https://doi.org/10.1145/3622824 10.1145/3622824 Martin Bravenboer and Yannis Smaragdakis. 2009. Strictly declarative specification of sophisticated points-to analyses. In Proceedings of the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2009, October 25-29, 2009, Orlando, Florida, USA, Shail Arora and Gary T. Leavens (Eds.). ACM, 243–262. https://doi.org/10.1145/1640089.1640108 10.1145/1640089.1640108 Florian Lorenzen and Sebastian Erdweg. 2013. Modular and automated type-soundness verification for language extensions. In ACM SIGPLAN International Conference on Functional Programming, ICFP’13, Boston, MA, USA - September 25 - 27, 2013, Greg Morrisett and Tarmo Uustalu (Eds.). ACM, 331–342. https://doi.org/10.1145/2500365.2500596 10.1145/2500365.2500596 Matthew Flatt, Taylor Allred, Nia Angle, Stephen De Gabrielle, Robert Bruce Findler, Jack Firth, Kiran Gopinathan, Ben Greenman, Siddhartha Kasivajhula, Alex Knauth, Jay McCarthy, Sam Phillips, Sorawee Porncharoenwase, Jens Axel Søgaard, and Sam Tobin-Hochstadt. 2023. Rhombus: A New Spin on Macros without All the Parentheses. Proc. ACM Program. Lang., 7, OOPSLA2 (2023). 1978. Logic and Data Bases, Symposium on Logic and Data Bases, Centre d’études et de recherches de Toulouse, France, 1977, Hervé Gallaire and Jack Minker (Eds.). Plemum Press, New York. isbn:0-306-40060-X https://doi.org/10.1007/978-1-4684-3384-5 10.1007/978-1-4684-3384-5 Yihong Zhang, Yisu Remy Wang, Oliver Flatt, David Cao, Philip Zucker, Eli Rosenthal, Zachary Tatlock, and Max Willsey. 2023. Better Together: Unifying Datalog and Equality Saturation. Proc. ACM Program. Lang., 7, PLDI (2023), 468–492. https://doi.org/10.1145/3591239 10.1145/3591239 David Zook, Emir Pasalic, and Beata Sarna-Starosta. 2009. Typed Datalog. In Practical Aspects of Declarative Languages, Andy Gill and Terrance Swift (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 168–182. isbn:978-3-540-92995-6 Dániel Varró, Gábor Bergmann, Ábel Hegedüs, Ákos Horváth, István Ráth, and Zoltán Ujhelyi. 2016. Road to a reactive and incremental model transformation platform: three generations of the VIATRA framework. Software & Systems Modeling, 15, 3 (2016), 01 Jul, 609–629. issn:1619-1374 https://doi.org/10.1007/s10270-016-0530-4 10.1007/s10270-016-0530-4 Max Schäfer and Oege de Moor. 2010. Type Inference for Datalog with Complex Type Hierarchies. SIGPLAN Not., 45, 1 (2010), jan, 145–156. issn:0362-1340 https://doi.org/10.1145/1707801.1706317 10.1145/1707801.1706317 Mingwei Samuel. 2021. Hydroflow: A Model and Runtime for Distributed Systems Programming. Master’s thesis. EECS Department, University of California, Berkeley. http://www2.eecs.berkeley.edu/Pubs/TechRpts/2021/EECS-2021-201.html David Klopp, Sebastian Erdweg, and André Pacak. 2024. Object-Oriented Fixpoint Programming with Datalog. Proc. ACM Program. Lang., 8, OOPSLA2 (2024), https://doi.org/10.1145/3689713 10.1145/3689713 Arash Sahebolamri, Thomas Gilray, and Kristopher K. Micinski. 2022. Seamless deductive inference via macros. In CC ’22: 31st ACM SIGPLAN International Conference on Compiler Construction, Seoul, South Korea, April 2 - 3, 2022, Bernhard Egger and Aaron Smith (Eds.). ACM, 77–88. https://doi.org/10.1145/3497776.3517779 10.1145/3497776.3517779 Pavel Avgustinov, Oege de Moor, Michael Peyton Jones, and Max Schäfer. 2016. QL: Object-oriented Queries on Relational Data. In 30th European Conference on Object-Oriented Programming, ECOOP 2016, July 18-22, 2016, Rome, Italy, Shriram Krishnamurthi and Benjamin S. Lerner (Eds.) (LIPIcs, Vol. 56). Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 2:1–2:25. https://doi.org/10.4230/LIPIcs.ECOOP.2016.2 10.4230/LIPIcs.ECOOP.2016.2 Gilles Duboscq, Lukas Stadler, Thomas Wuerthinger, Doug Simon, Christian Wimmer, and Hanspeter Mössenböck. 2013. Graal IR: An Extensible Declarative Intermediate Representation. André Pacak and Sebastian Erdweg. 2022. Functional Programming wi Zook David (e_1_2_1_42_1) e_1_2_1_20_1 McSherry Frank (e_1_2_1_24_1) 2013 e_1_2_1_41_1 e_1_2_1_40_1 e_1_2_1_23_1 Roland Leiß (e_1_2_1_19_1) 2015 Samuel Mingwei (e_1_2_1_30_1) 2021 e_1_2_1_21_1 e_1_2_1_22_1 e_1_2_1_27_1 Duboscq Gilles (e_1_2_1_9_1) 2013 e_1_2_1_28_1 e_1_2_1_25_1 e_1_2_1_26_1 e_1_2_1_29_1 e_1_2_1_7_1 e_1_2_1_31_1 e_1_2_1_8_1 e_1_2_1_5_1 e_1_2_1_6_1 e_1_2_1_3_1 e_1_2_1_12_1 e_1_2_1_35_1 e_1_2_1_4_1 e_1_2_1_13_1 e_1_2_1_34_1 e_1_2_1_1_1 e_1_2_1_10_1 e_1_2_1_33_1 e_1_2_1_2_1 e_1_2_1_11_1 e_1_2_1_32_1 e_1_2_1_16_1 e_1_2_1_39_1 e_1_2_1_17_1 e_1_2_1_38_1 e_1_2_1_14_1 e_1_2_1_37_1 e_1_2_1_15_1 e_1_2_1_36_1 e_1_2_1_18_1 |
| References_xml | – reference: Florian Lorenzen and Sebastian Erdweg. 2016. Sound type-dependent syntactic language extension. In Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2016, St. Petersburg, FL, USA, January 20 - 22, 2016, Rastislav Bodík and Rupak Majumdar (Eds.). ACM, 204–216. https://doi.org/10.1145/2837614.2837644 10.1145/2837614.2837644 – reference: Bernhard Scholz, Kostyantyn Vorobyov, Padmanabhan Krishnan, and Till Westmann. 2015. A Datalog Source-to-Source Translator for Static Program Analysis: An Experience Report. In 24th Australasian Software Engineering Conference, ASWEC 2015, Adelaide, SA, Australia, September 28 - October 1, 2015. IEEE Computer Society, 28–37. https://doi.org/10.1109/ASWEC.2015.15 10.1109/ASWEC.2015.15 – reference: Dániel Varró, Gábor Bergmann, Ábel Hegedüs, Ákos Horváth, István Ráth, and Zoltán Ujhelyi. 2016. Road to a reactive and incremental model transformation platform: three generations of the VIATRA framework. Software & Systems Modeling, 15, 3 (2016), 01 Jul, 609–629. issn:1619-1374 https://doi.org/10.1007/s10270-016-0530-4 10.1007/s10270-016-0530-4 – reference: Pavle Subotic, Herbert Jordan, Lijun Chang, Alan D. Fekete, and Bernhard Scholz. 2018. Automatic Index Selection for Large-Scale Datalog Computation. Proc. VLDB Endow., 12, 2 (2018), 141–153. https://doi.org/10.14778/3282495.3282500 10.14778/3282495.3282500 – reference: Frank McSherry, Derek Gordon Murray, Rebecca Isaacs, and Michael Isard. 2013. Differential Dataflow. In Sixth Biennial Conference on Innovative Data Systems Research, CIDR 2013, Asilomar, CA, USA, January 6-9, 2013, Online Proceedings. www.cidrdb.org. http://cidrdb.org/cidr2013/Papers/CIDR13_Paper111.pdf – reference: Matthew Flatt, Taylor Allred, Nia Angle, Stephen De Gabrielle, Robert Bruce Findler, Jack Firth, Kiran Gopinathan, Ben Greenman, Siddhartha Kasivajhula, Alex Knauth, Jay McCarthy, Sam Phillips, Sorawee Porncharoenwase, Jens Axel Søgaard, and Sam Tobin-Hochstadt. 2023. Rhombus: A New Spin on Macros without All the Parentheses. Proc. ACM Program. Lang., 7, OOPSLA2 (2023). – reference: Tamás Szabó, Sebastian Erdweg, and Gábor Bergmann. 2021. Incremental whole-program analysis in Datalog with lattices. In PLDI ’21: 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, Virtual Event, Canada, June 20-25, 2021, Stephen N. Freund and Eran Yahav (Eds.). ACM, 1–15. https://doi.org/10.1145/3453483.3454026 10.1145/3453483.3454026 – reference: Elnar Hajiyev, Mathieu Verbaere, and Oege de Moor. 2006. codeQuest: Scalable Source Code Queries with Datalog. In ECOOP 2006 - Object-Oriented Programming, 20th European Conference, Nantes, France, July 3-7, 2006, Proceedings, Dave Thomas (Ed.) (Lecture Notes in Computer Science, Vol. 4067). Springer, 2–27. https://doi.org/10.1007/11785477_2 10.1007/11785477_2 – reference: David Klopp, Sebastian Erdweg, and André Pacak. 2024. Object-Oriented Fixpoint Programming with Datalog. Proc. ACM Program. Lang., 8, OOPSLA2 (2024), https://doi.org/10.1145/3689713 10.1145/3689713 – reference: Florian Lorenzen and Sebastian Erdweg. 2013. Modular and automated type-soundness verification for language extensions. In ACM SIGPLAN International Conference on Functional Programming, ICFP’13, Boston, MA, USA - September 25 - 27, 2013, Greg Morrisett and Tarmo Uustalu (Eds.). ACM, 331–342. https://doi.org/10.1145/2500365.2500596 10.1145/2500365.2500596 – reference: Oege de Moor, Damien Sereni, Pavel Avgustinov, and Mathieu Verbaere. 2008. Type Inference for Datalog and Its Application to Query Optimisation. In Proceedings of the Twenty-Seventh ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems (PODS ’08). Association for Computing Machinery, New York, NY, USA. 291–300. isbn:9781605581521 https://doi.org/10.1145/1376916.1376957 10.1145/1376916.1376957 – reference: Chris Lattner, Mehdi Amini, Uday Bondhugula, Albert Cohen, Andy Davis, Jacques A. Pienaar, River Riddle, Tatiana Shpeisman, Nicolas Vasilache, and Oleksandr Zinenko. 2021. MLIR: Scaling Compiler Infrastructure for Domain Specific Computation. In IEEE/ACM International Symposium on Code Generation and Optimization, CGO 2021, Seoul, South Korea, February 27 - March 3, 2021, Jae W. Lee, Mary Lou Soffa, and Ayal Zaks (Eds.). IEEE, 2–14. https://doi.org/10.1109/CGO51591.2021.9370308 10.1109/CGO51591.2021.9370308 – reference: Martin Bravenboer and Eelco Visser. 2004. Concrete syntax for objects: domain-specific language embedding and assimilation without restrictions. In Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2004, October 24-28, 2004, Vancouver, BC, Canada, John M. Vlissides and Douglas C. Schmidt (Eds.). ACM, 365–383. https://doi.org/10.1145/1028976.1029007 10.1145/1028976.1029007 – reference: Chris Lattner and Vikram S. Adve. 2004. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. In 2nd IEEE / ACM International Symposium on Code Generation and Optimization (CGO 2004), 20-24 March 2004, San Jose, CA, USA. IEEE Computer Society, 75–88. https://doi.org/10.1109/CGO.2004.1281665 10.1109/CGO.2004.1281665 – reference: Martin Bravenboer and Yannis Smaragdakis. 2009. Strictly declarative specification of sophisticated points-to analyses. In Proceedings of the 24th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2009, October 25-29, 2009, Orlando, Florida, USA, Shail Arora and Gary T. Leavens (Eds.). ACM, 243–262. https://doi.org/10.1145/1640089.1640108 10.1145/1640089.1640108 – reference: Todd J. Green, Shan Shan Huang, Boon Thau Loo, and Wenchao Zhou. 2013. Datalog and Recursive Query Processing. Found. Trends Databases, 5, 2 (2013), nov, 105–195. issn:1931-7883 https://doi.org/10.1561/1900000017 10.1561/1900000017 – reference: André Pacak and Sebastian Erdweg. 2022. Functional Programming with Datalog. In 36th European Conference on Object-Oriented Programming, ECOOP 2022, June 6-10, 2022, Berlin, Germany, Karim Ali and Jan Vitek (Eds.) (LIPIcs, Vol. 222). Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 7:1–7:28. https://doi.org/10.4230/LIPIcs.ECOOP.2022.7 10.4230/LIPIcs.ECOOP.2022.7 – reference: André Pacak and Sebastian Erdweg. 2023. Interactive Debugging of Datalog Programs. Proc. ACM Program. Lang., 7, OOPSLA2 (2023), 745–772. https://doi.org/10.1145/3622824 10.1145/3622824 – reference: Magnus Madsen, Ming-Ho Yee, and Ondrej Lhoták. 2016. From Datalog to Flix: A declarative language for fixed points on lattices. In Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2016, Santa Barbara, CA, USA, June 13-17, 2016, Chandra Krintz and Emery Berger (Eds.). ACM, 194–208. https://doi.org/10.1145/2908080.2908096 10.1145/2908080.2908096 – reference: K. Tuncay Tekle and Yanhong A. Liu. 2010. Precise complexity analysis for efficient datalog queries. In Proceedings of the 12th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming, July 26-28, 2010, Hagenberg, Austria, Temur Kutsia, Wolfgang Schreiner, and Maribel Fernández (Eds.). ACM, 35–44. https://doi.org/10.1145/1836089.1836094 10.1145/1836089.1836094 – reference: Herbert Jordan, Simone Pellegrini, Peter Thoman, Klaus Kofler, and Thomas Fahringer. 2013. INSPIRE: the insieme parallel intermediate representation. In Proceedings of the 22nd International Conference on Parallel Architectures and Compilation Techniques (PACT ’13). IEEE Press, 7–18. isbn:9781479910212 – reference: Sebastian Erdweg, Tijs van der Storm, and Yi Dai. 2014. Capture-Avoiding and Hygienic Program Transformations. In ECOOP 2014 - Object-Oriented Programming - 28th European Conference, Uppsala, Sweden, July 28 - August 1, 2014. Proceedings (Lecture Notes in Computer Science, Vol. 8586). Springer, 489–514. – reference: Peter Alvaro, William R. Marczak, Neil Conway, Joseph M. Hellerstein, David Maier, and Russell Sears. 2010. Dedalus: Datalog in Time and Space. In Datalog Reloaded - First International Workshop, Datalog 2010, Oxford, UK, March 16-19, 2010. Revised Selected Papers, Oege de Moor, Georg Gottlob, Tim Furche, and Andrew Jon Sellers (Eds.) (Lecture Notes in Computer Science, Vol. 6702). Springer, 262–281. https://doi.org/10.1007/978-3-642-24206-9_16 10.1007/978-3-642-24206-9_16 – reference: John Whaley and Monica S. Lam. 2004. Cloning-based context-sensitive pointer alias analysis using binary decision diagrams. In Proceedings of the ACM SIGPLAN 2004 Conference on Programming Language Design and Implementation 2004, Washington, DC, USA, June 9-11, 2004, William W. Pugh and Craig Chambers (Eds.). ACM, 131–144. https://doi.org/10.1145/996841.996859 10.1145/996841.996859 – reference: Magnus Madsen and Ondrej Lhoták. 2020. Fixpoints for the masses: programming with first-class Datalog constraints. Proc. ACM Program. Lang., 4, OOPSLA (2020), 125:1–125:28. https://doi.org/10.1145/3428193 10.1145/3428193 – reference: Tamás Szabó, Gábor Bergmann, Sebastian Erdweg, and Markus Voelter. 2018. Incrementalizing lattice-based program analyses in Datalog. Proc. ACM Program. Lang., 2, OOPSLA (2018), 139:1–139:29. https://doi.org/10.1145/3276509 10.1145/3276509 – reference: Aaron Bembenek, Michael Greenberg, and Stephen Chong. 2020. Formulog: Datalog for SMT-based static analysis. Proc. ACM Program. Lang., 4, OOPSLA (2020), 141:1–141:31. https://doi.org/10.1145/3428209 10.1145/3428209 – reference: Arash Sahebolamri, Thomas Gilray, and Kristopher K. Micinski. 2022. Seamless deductive inference via macros. In CC ’22: 31st ACM SIGPLAN International Conference on Compiler Construction, Seoul, South Korea, April 2 - 3, 2022, Bernhard Egger and Aaron Smith (Eds.). ACM, 77–88. https://doi.org/10.1145/3497776.3517779 10.1145/3497776.3517779 – reference: Roland Leiß a, Marcel Köster, and Sebastian Hack. 2015. A graph-based higher-order intermediate representation. 2015 IEEE/ACM International Symposium on Code Generation and Optimization (CGO), 202–212. https://api.semanticscholar.org/CorpusID:12679069 – reference: Bernhard Scholz, Herbert Jordan, Pavle Subotic, and Till Westmann. 2016. On fast large-scale program analysis in Datalog. In Proceedings of the 25th International Conference on Compiler Construction, CC 2016, Barcelona, Spain, March 12-18, 2016, Ayal Zaks and Manuel V. Hermenegildo (Eds.). ACM, 196–206. https://doi.org/10.1145/2892208.2892226 10.1145/2892208.2892226 – reference: Michael Arntzenius and Neelakantan R. Krishnaswami. 2016. Datafun: A Functional Datalog. In Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming, ICFP 2016, Nara, Japan, September 18-22, 2016, Jacques Garrigue, Gabriele Keller, and Eijiro Sumii (Eds.). ACM, 214–227. https://doi.org/10.1145/2951913.2951948 10.1145/2951913.2951948 – reference: David Zook, Emir Pasalic, and Beata Sarna-Starosta. 2009. Typed Datalog. In Practical Aspects of Declarative Languages, Andy Gill and Terrance Swift (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 168–182. isbn:978-3-540-92995-6 – reference: Samuel Arch, Xiaowen Hu, David Zhao, Pavle Subotic, and Bernhard Scholz. 2022. Building a Join Optimizer for Soufflé. In Logic-Based Program Synthesis and Transformation - 32nd International Symposium, LOPSTR 2022, Tbilisi, Georgia, September 21-23, 2022, Proceedings, Alicia Villanueva (Ed.) (Lecture Notes in Computer Science, Vol. 13474). Springer, 83–102. https://doi.org/10.1007/978-3-031-16767-6_5 10.1007/978-3-031-16767-6_5 – reference: André Pacak, Tamás Szabó, and Sebastian Erdweg. 2022. Incremental Processing of Structured Data in Datalog. In Proceedings of the 21st ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, GPCE 2022, Auckland, New Zealand, December 6-7, 2022, Bernhard Scholz and Yukiyoshi Kameyama (Eds.). ACM, 20–32. https://doi.org/10.1145/3564719.3568686 10.1145/3564719.3568686 – reference: Mingwei Samuel. 2021. Hydroflow: A Model and Runtime for Distributed Systems Programming. Master’s thesis. EECS Department, University of California, Berkeley. http://www2.eecs.berkeley.edu/Pubs/TechRpts/2021/EECS-2021-201.html – reference: Yihong Zhang, Yisu Remy Wang, Oliver Flatt, David Cao, Philip Zucker, Eli Rosenthal, Zachary Tatlock, and Max Willsey. 2023. Better Together: Unifying Datalog and Equality Saturation. Proc. ACM Program. Lang., 7, PLDI (2023), 468–492. https://doi.org/10.1145/3591239 10.1145/3591239 – reference: Max Schäfer and Oege de Moor. 2010. Type Inference for Datalog with Complex Type Hierarchies. SIGPLAN Not., 45, 1 (2010), jan, 145–156. issn:0362-1340 https://doi.org/10.1145/1707801.1706317 10.1145/1707801.1706317 – reference: Tamás Szabó, Sebastian Erdweg, and Markus Voelter. 2016. IncA: a DSL for the definition of incremental program analyses. In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, ASE 2016, Singapore, September 3-7, 2016, David Lo, Sven Apel, and Sarfraz Khurshid (Eds.). ACM, 320–331. https://doi.org/10.1145/2970276.2970298 10.1145/2970276.2970298 – reference: 1978. Logic and Data Bases, Symposium on Logic and Data Bases, Centre d’études et de recherches de Toulouse, France, 1977, Hervé Gallaire and Jack Minker (Eds.). Plemum Press, New York. isbn:0-306-40060-X https://doi.org/10.1007/978-1-4684-3384-5 10.1007/978-1-4684-3384-5 – reference: Gilles Duboscq, Lukas Stadler, Thomas Wuerthinger, Doug Simon, Christian Wimmer, and Hanspeter Mössenböck. 2013. Graal IR: An Extensible Declarative Intermediate Representation. – reference: Leonid Ryzhyk and Mihai Budiu. 2019. Differential Datalog. In Datalog 2.0 2019 - 3rd International Workshop on the Resurgence of Datalog in Academia and Industry co-located with the 15th International Conference on Logic Programming and Nonmonotonic Reasoning (LPNMR 2019) at the Philadelphia Logic Week 2019, Philadelphia, PA (USA), June 4-5, 2019, Mario Alviano and Andreas Pieris (Eds.) (CEUR Workshop Proceedings, Vol. 2368). CEUR-WS.org, 56–67. http://ceur-ws.org/Vol-2368/paper6.pdf – reference: Pavel Avgustinov, Oege de Moor, Michael Peyton Jones, and Max Schäfer. 2016. QL: Object-oriented Queries on Relational Data. In 30th European Conference on Object-Oriented Programming, ECOOP 2016, July 18-22, 2016, Rome, Italy, Shriram Krishnamurthi and Benjamin S. Lerner (Eds.) (LIPIcs, Vol. 56). Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 2:1–2:25. https://doi.org/10.4230/LIPIcs.ECOOP.2016.2 10.4230/LIPIcs.ECOOP.2016.2 – ident: e_1_2_1_23_1 doi: 10.1145/2908080.2908096 – ident: e_1_2_1_17_1 doi: 10.1109/CGO.2004.1281665 – ident: e_1_2_1_38_1 doi: 10.1145/1836089.1836094 – ident: e_1_2_1_5_1 doi: 10.1145/3428209 – ident: e_1_2_1_13_1 doi: 10.1561/1900000017 – ident: e_1_2_1_27_1 doi: 10.1145/3564719.3568686 – ident: e_1_2_1_2_1 doi: 10.1007/978-3-031-16767-6_5 – ident: e_1_2_1_4_1 doi: 10.4230/LIPIcs.ECOOP.2016.2 – ident: e_1_2_1_36_1 doi: 10.1145/3453483.3454026 – ident: e_1_2_1_39_1 doi: 10.1007/s10270-016-0530-4 – ident: e_1_2_1_7_1 doi: 10.1145/1028976.1029007 – volume-title: Hydroflow: A Model and Runtime for Distributed Systems Programming. Master’s thesis. EECS Department year: 2021 ident: e_1_2_1_30_1 – ident: e_1_2_1_10_1 doi: 10.1007/978-3-662-44202-9_20 – volume-title: 2015 IEEE/ACM International Symposium on Code Generation and Optimization (CGO), 202–212 year: 2015 ident: e_1_2_1_19_1 – ident: e_1_2_1_35_1 doi: 10.1145/3276509 – ident: e_1_2_1_15_1 doi: 10.5555/2523721.2523727 – ident: e_1_2_1_31_1 doi: 10.1145/1707801.1706317 – ident: e_1_2_1_11_1 doi: 10.1145/3622818 – ident: e_1_2_1_1_1 doi: 10.1007/978-3-642-24206-9_16 – ident: e_1_2_1_14_1 doi: 10.1007/11785477_2 – ident: e_1_2_1_21_1 doi: 10.1145/2837614.2837644 – ident: e_1_2_1_40_1 doi: 10.1145/996841.996859 – ident: e_1_2_1_33_1 doi: 10.1109/ASWEC.2015.15 – ident: e_1_2_1_41_1 doi: 10.1145/3591239 – volume-title: Practical Aspects of Declarative Languages ident: e_1_2_1_42_1 – ident: e_1_2_1_29_1 doi: 10.1145/3497776.3517779 – ident: e_1_2_1_3_1 doi: 10.1145/2951913.2951948 – ident: e_1_2_1_6_1 doi: 10.1145/1640089.1640108 – ident: e_1_2_1_16_1 doi: 10.1145/3689713 – ident: e_1_2_1_22_1 doi: 10.1145/3428193 – ident: e_1_2_1_26_1 doi: 10.1145/3622824 – volume-title: Rebecca Isaacs, and Michael Isard. year: 2013 ident: e_1_2_1_24_1 – ident: e_1_2_1_20_1 doi: 10.1145/2500365.2500596 – ident: e_1_2_1_34_1 doi: 10.14778/3282495.3282500 – ident: e_1_2_1_8_1 doi: 10.1145/1376916.1376957 – volume-title: Graal IR: An Extensible Declarative Intermediate Representation. year: 2013 ident: e_1_2_1_9_1 – ident: e_1_2_1_18_1 doi: 10.1109/CGO51591.2021.9370308 – ident: e_1_2_1_32_1 doi: 10.1145/2892208.2892226 – ident: e_1_2_1_25_1 doi: 10.4230/LIPIcs.ECOOP.2022.7 – ident: e_1_2_1_12_1 doi: 10.1007/978-1-4684-3384-5 – ident: e_1_2_1_28_1 – ident: e_1_2_1_37_1 doi: 10.1145/2970276.2970298 |
| SSID | ssj0001934839 |
| Score | 2.2911284 |
| Snippet | The resurgence of Datalog in the last two decades has led to a multitude of new Datalog systems. These systems explore novel ideas for improving Datalog's... |
| SourceID | crossref acm |
| SourceType | Index Database Publisher |
| StartPage | 1586 |
| SubjectTerms | Compilers Constraint and logic programming Software and its engineering Theory of computation Type theory |
| SubjectTermsDisplay | Software and its engineering -- Compilers Theory of computation -- Constraint and logic programming Theory of computation -- Type theory |
| Title | A Typed Multi-level Datalog IR and Its Compiler Framework |
| URI | https://dl.acm.org/doi/10.1145/3689767 |
| Volume | 8 |
| WOSCitedRecordID | wos001360845100017&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/eLvHCXMwtV07bxQxELZCQkED5IEIL7lId7JYr71nu1xFICKR5BSuSBf5_JAiks3pboFU_HbGj92zAgUUNKt9uvA3O_48_saD0JFWXHtJKdFCGsId1WTh1ZRQD8OfcULYBY_FJsTZmby8VLNc3modywmIrpP392r5X6GGewB2SJ39B7jHRuEGnAPocATY4fhXwLeTMLe0k5haS26CKAiwjUGayclF0v_26-gIwCOsAnVN8qySp87GcS1KPdrj07CqkMVctyG8MAQ6N4tBN3fL5QOZPDD1lf3hUkTawYjZF9Y400Z_HUSVacG-jEHUPIngCqvJuvbot2ouGkJ5SnwenKwsbOn8fPblc1sXbpM2w37Y6XKaEkt_d-887ITBphJIlNiMYKOuMD95hHZq0aig8Dv9WYTcFOPAB1PqdGjrfX4_MBNzWzCTgmLMn6OneW6A24TpLtpy3R56NtTdwNkN7yPV4ggxLiDGGWJ8coEBYgwQ4wFiPEJ8gOYfP8yPP5FcAoPomqmeNNJT7rizpnLS1Rb4vXNualnlra8qZyjzIWYFJJcx-K2UNZpxa-vK-cZa9gJtd3ede4mwtZXmhimvjeILLrTUVkjNLDDWhaTuEO1BH1wt0x4nV7lnDhEe-mR8lFLZm-GVV3_88DV6sjGUN2i7X31zb9Fj872_Xq_eRVx-AafTSQo |
| 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=A+Typed+Multi-level+Datalog+IR+and+Its+Compiler+Framework&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Klopp%2C+David&rft.au=Erdweg%2C+Sebastian&rft.au=Pacak%2C+Andr%C3%A9&rft.date=2024-10-08&rft.pub=ACM&rft.eissn=2475-1421&rft.volume=8&rft.issue=OOPSLA2&rft.spage=1586&rft.epage=1614&rft_id=info:doi/10.1145%2F3689767&rft.externalDocID=3689767 |
| 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 |