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

Full description

Saved in:
Bibliographic Details
Published in:Proceedings of ACM on programming languages Vol. 8; no. OOPSLA2; pp. 1586 - 1614
Main Authors: Klopp, David, Erdweg, Sebastian, Pacak, André
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/eLvHCXMwtV1Lb9QwELagcODCo4D6AvnAbRWRxI_Yx6iiolIfq7KH3ion40iINl3tBuipv73jR7IWcIADlyixHR_8jcafx9_YhHzIG81tw5tMMtZkHKTMNG_RlhF9q5mUqvWHuJ5UZ2fq8lLP4_VWa3-dQNX36u5OL_8r1FiGYLvU2X-Ae-oUC_AdQccnwo7PvwK-nrm1Jcx8am127URBiK0P0syOL4L-d1h7R4AeYeWoa5BnpTx1Ps1rXupRH566XYUo5rpx4YUx0LnZDLq-XS5_kckjU1_BTxsi0hZnzCGxxrlpzbdRVBk27NMYRMmDCC6xmqhr936r5JXICh4Sn0cnqxJbOj-ffzmpy8RtFmI8Dzt8ypBY-rt75-4kDCYVkqhqM4NNusJY85g8KSuhncLv9D4JuWnGkQ-G1GnX18fY3jGT9iZhJgnFWLwkz-PagNYB01fkke23yYvx3g0a3fBromvqIaYJxDRCTI8vKEJMEWI6QkwniN-QxdGnxeHnLF6BkZmS6SETqiu45Rba3CpbAvJ7a60ElnfQ5bltC9a5mBWSXMag4RpawzhAmdtOALC3ZKu_7e0OocJUpSkgNw2SRq3ASN1oty0uhBGgYJds4xhcLcMZJ1dxZHYJHcdkqgqp7GJssvfHH_fJs42hHJCtYfXdviNP2x_D1_XqvcflAXd2R1M
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