JOURNAL ARTICLE

Object-Oriented Fixpoint Programming with Datalog

D. A. KloppSebastian ErdwegAndré Pacak

Year: 2024 Journal:   Proceedings of the ACM on Programming Languages Vol: 8 (OOPSLA2)Pages: 60-86   Publisher: Association for Computing Machinery

Abstract

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. Our performance evaluation shows that the interpreter fails to solve fixpoint problems efficiently, whereas the compiled code exploits Datalog's semi-naïve evaluation.

Keywords:
Datalog Programming language Computer science Object (grammar) Object-oriented programming Fixed point Parallel computing Theoretical computer science Mathematics Artificial intelligence

Metrics

2
Cited By
1.28
FWCI (Field Weighted Citation Impact)
26
Refs
0.78
Citation Normalized Percentile
Is in top 1%
Is in top 10%

Citation History

Topics

Logic, programming, and type systems
Physical Sciences →  Computer Science →  Artificial Intelligence
Formal Methods in Verification
Physical Sciences →  Computer Science →  Computational Theory and Mathematics
Distributed systems and fault tolerance
Physical Sciences →  Computer Science →  Computer Networks and Communications

Related Documents

BOOK-CHAPTER

Object-Oriented Programming with C#

Andrew Troelsen

Apress eBooks Year: 2001 Pages: 133-201
BOOK-CHAPTER

Object-Oriented Programming with Swift

Stefan KaczmarekBrad LeesGary W. Bennett

Apress eBooks Year: 2019 Pages: 75-96
BOOK-CHAPTER

Object-Oriented Programming with Swift

Gary W. BennettBrad Lees

Apress eBooks Year: 2015 Pages: 65-82
© 2026 ScienceGate Book Chapters — All rights reserved.