Lune

OOPSLA2024顶会

Object-Oriented Fixpoint Programming with Datalog

David Klopp, Sebastian Erdweg, André Pacak

2024年份
2被引次数
2顶会引用

摘要

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 xpoint 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 xpoint semantics, such that recursive computations iterate until their result becomes stable. We develop two semantics for OODL: a xpoint interpreter and a compiler that translates OODL to Datalog. Although the side eects found in OOP (object allocation and mutation) conict with Datalog's xpoint semantics, we can mostly resolve these incompatibilities through extensions of OODL. Within xpoint 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 xpoint problems eciently, whereas the compiled code exploits Datalog's semi-naïve evaluation. CCS Concepts: • Software and its engineering ! Object oriented languages; Constraint and logic languages; • Theory of computation ! Program analysis.

问问这篇 Paper

智能体会读完全文。

Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。

可以从这些问题问起

智能体调用

Luneget_paper_fulltext

在 Lune 里问

免费开始,无需绑卡

引用它的顶会 Paper2

问问它们各自怎么用它

它引用的顶会 Paper4

相关 Paper

黄昏的海面,两侧是细线勾勒的悬崖