Efficient algebraic effect handlers for Prolog
From MaRDI portal
Publication:4593065
Abstract: Recent work has provided delimited control for Prolog to dynamically manipulate the program control-flow, and to implement a wide range of control-flow and dataflow effects on top of. Unfortunately, delimited control is a rather primitive language feature that is not easy to use. As a remedy, this work introduces algebraic effect handlers for Prolog, as a high-level and structured way of defining new side-effects in a modular fashion. We illustrate the expressive power of the feature and provide an implementation by means of elaboration into the delimited control primitives. The latter add a non-negligible performance overhead when used extensively. To address this issue, we present an optimised compilation approach that combines partial evaluation with dedicated rewrite rules. The rewrite rules are driven by a lightweight effect inference that analyses what effect operations may be called by a goal. We illustrate the effectiveness of this approach on a range of benchmarks. This article is under consideration for acceptance in TPLP.
Recommendations
- Programming with algebraic effects and handlers
- Algèbres effectives dans la programmation logique avec contraintes
- An introduction to algebraic effects and handlers (invited tutorial paper)
- An effect system for algebraic effects and handlers
- An effect system for algebraic effects and handlers
- A sound and complete logic for algebraic effects
- Algebraic effects for extensible dynamic semantics
- The expressive power of side effects in prolog
- Efficient groundness analysis in Prolog
Cites work
- scientific article; zbMATH DE number 2087441 (Why is no real title available?)
- scientific article; zbMATH DE number 2090530 (Why is no real title available?)
- Delimited continuations for Prolog
- Fusion for free. Efficient algebraic effect handlers
- Handlers in action
- Handling algebraic effects
- Programming with algebraic effects and handlers
- Tabling as a library with delimited control
- \textsc{Tor}: modular search with hookable disjunction
Cited in
(6)- PRISM revisited: declarative implementation of a probabilistic programming language using multi-prompt delimited control
- Delimited continuations for Prolog
- One-shot algebraic effects as coroutines
- Disjunctive delimited control
- The expressive power of side effects in prolog
- No value restriction is needed for algebraic effects and handlers
This page was built for publication: Efficient algebraic effect handlers for Prolog
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q4593065)