Efficient algebraic effect handlers for Prolog

From MaRDI portal
Publication:4593065

DOI10.1017/S147106841600034XzbMATH Open1379.68080arXiv1608.00816OpenAlexW2963291743MaRDI QIDQ4593065FDOQ4593065


Authors: Amr Hany Saleh, Tom Schrijvers Edit this on Wikidata


Publication date: 9 November 2017

Published in: Theory and Practice of Logic Programming (Search for Journal in Brave)

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.


Full work available at URL: https://arxiv.org/abs/1608.00816




Recommendations




Cites Work


Cited In (6)

Uses Software





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)