Article contents
Efficient algebraic effect handlers for Prolog
Published online by Cambridge University Press: 14 October 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.
- Type
- Regular Papers
- Information
- Theory and Practice of Logic Programming , Volume 16 , Special Issue 5-6: 32nd International Conference on Logic Programming , September 2016 , pp. 884 - 898
- Copyright
- Copyright © Cambridge University Press 2016
References
- 3
- Cited by