KIT | KIT-Bibliothek | Impressum | Datenschutz

Object-Oriented Fixpoint Programming with Datalog

Klopp, David ; Erdweg, Sebastian ORCID iD icon 1; Pacak, André
1 Institut für Programmstrukturen und Datenorganisation (IPD), Karlsruher Institut für Technologie (KIT)

Abstract (englisch):

Modern usages of Datalog exceed its original design purpose in scale and complexity. In particular, Datalog lacks abstractions for code organization and reuse, making programs hard to maintain. Is it possible to exploit abstractions and design patterns from object-oriented programming (OOP) while retaining a Datalog-like fixpoint semantics? To answer this question, we design a new OOP language called OODL with common OOP features: dynamic object allocation, object identity, dynamic dispatch, and mutation. However, OODL has a Datalog-like fixpoint semantics, such that recursive computations iterate until their result becomes stable. We develop two semantics for OODL: a fixpoint interpreter and a compiler that translates OODL to Datalog. Although the side effects found in OOP (object allocation and mutation) conflict with Datalog's fixpoint semantics, we can mostly resolve these incompatibilities through extensions of OODL. Within fixpoint computations, we employ immutable algebraic data structures (e.g. case classes in Scala), rather than relying on object allocation, and we introduce monotonically mutable data types (mono types) to enable a relaxed form of mutation. ... mehr


Verlagsausgabe §
DOI: 10.5445/IR/1000188609
Veröffentlicht am 17.12.2025
Originalveröffentlichung
DOI: 10.1145/3689713
Scopus
Zitationen: 2
Dimensions
Zitationen: 2
Cover der Publikation
Zugehörige Institution(en) am KIT Institut für Programmstrukturen und Datenorganisation (IPD)
Publikationstyp Zeitschriftenaufsatz
Publikationsdatum 08.10.2024
Sprache Englisch
Identifikator ISSN: 2475-1421
KITopen-ID: 1000188609
Erschienen in Proceedings of the ACM on programming languages
Verlag Association for Computing Machinery (ACM)
Band 8
Heft OOPSLA2
Seiten 60-86
Schlagwörter object-oriented, Datalog, fixpoint
Nachgewiesen in Scopus
Dimensions
OpenAlex
KIT – Die Universität in der Helmholtz-Gemeinschaft
KITopen Landing Page