Disjunctive delimited control
From MaRDI portal
Abstract: Delimited control is a powerful mechanism for programming language extension which has been recently proposed for Prolog (and implemented in SWI-Prolog). By manipulating the control flow of a program from inside the language, it enables the implementation of powerful features, such as tabling, without modifying the internals of the Prolog engine. However, its current formulation is inadequate: it does not capture Prolog's unique non-deterministic nature which allows multiple ways to satisfy a goal. This paper fully embraces Prolog's non-determinism with a novel interface for disjunctive delimited control, which gives the programmer not only control over the sequential (conjunctive) control flow, but also over the non-deterministic control flow. We provide a meta-interpreter that conservatively extends Prolog with delimited control and show that it enables a range of typical Prolog features and extensions, now at the library level: findall, cut, branch-and-bound optimisation, probabilistic programming,...
Recommendations
Cites work
- \textsc{Tor}: modular search with hookable disjunction
- A monadic framework for delimited continuations
- A new identification scheme based on syndrome decoding
- A new paradigm for public key identification
- Delimited continuations for Prolog
- Efficient algebraic effect handlers for Prolog
- scientific article; zbMATH DE number 2090530 (Why is no real title available?)
- Inference and learning in probabilistic logic programs using weighted Boolean formulas
- Tabling as a library with delimited control
- The YAP prolog system
- XSB: extending Prolog with tabled logic programming
This page was built for publication: Disjunctive delimited control
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q6102252)