Back to Search
Start Over
Efficient algebraic effect handlers for Prolog.
- Source :
- Theory & Practice of Logic Programming; Sep2016, Vol. 16 Issue 5/6, p884-898, 15p
- Publication Year :
- 2016
-
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. [ABSTRACT FROM AUTHOR]
Details
- Language :
- English
- ISSN :
- 14710684
- Volume :
- 16
- Issue :
- 5/6
- Database :
- Complementary Index
- Journal :
- Theory & Practice of Logic Programming
- Publication Type :
- Academic Journal
- Accession number :
- 118851336
- Full Text :
- https://doi.org/10.1017/S147106841600034X