## Overview of the Monadic Constraint Programming Framework

### BibTeX

@MISC{Schrijvers_overviewof,

author = {Tom Schrijvers},

title = {Overview of the Monadic Constraint Programming Framework},

year = {}

}

### OpenURL

### Abstract

Abstract. A constraint programming system combines two essential components: a constraint solver and a search engine. The constraint solver reasons about satisfiability of conjunctions of constraints, and the search engine controls the search for solutions by iteratively exploring a disjunctive search tree defined by the constraint program. The Monadic Constraint Programming framework gives a monadic definition of constraint programming where the solver is defined as a monad threaded through the monadic search tree. Search and search strategies can then be defined as firstclass objects that can themselves be built or extended by composable search transformers. Search transformers give a powerful and unifying approach to viewing search in constraint programming, and the resulting constraint programming system is first class and extremely flexible. 1

### Citations

398 | Theory and practice of constraint handling rules
- Frühwirth
- 1998
(Show Context)
Citation Context ...head of the MCP framework. To name just a few important ones: 1) to generalize our search framework to arbitrary search problems, 2) to integrate a Haskell implementation of Constraint Handling Rules =-=[6]-=- with the framework to provide the combination of programmable search and programmable solving, and 3) to explore the performance characteristics of the framework. Currently, we are integrating the Ge... |

353 |
Programming with Constraints: An Introduction
- Marriott, Stuckey
- 1998
(Show Context)
Citation Context ... and unifying approach to viewing search in constraint programming, and the resulting constraint programming system is first class and extremely flexible. 1 Introduction A constraint programming (CP) =-=[11]-=- system combines two essential components: a constraint solver and a search engine. The constraint solver reasons about conjunctions of constraints and its principal job it to determine unsatisfiabili... |

55 | Alma-0: An Imperative Language that Supports Declarative Programming
- Apt, Brunekreef, et al.
- 1998
(Show Context)
Citation Context ...neered before the introduction of monads [20]—upon which various improvements have been made, e.g. breadth-first search [15], Prolog’s pruning operator cut [8], and fair interleaving [10]. The Alma-0 =-=[1]-=- has a similar objective in an imperative setting: it adds Prolog-like depth-first search and pruning features to Modula-2. FaCiLe is a finite domain constraint library for OCaml, developed as part of... |

26 |
Gecode (generic constraint development environment), 2005. Available from www.gecode.org
- Team
(Show Context)
Citation Context ...amework to provide the combination of programmable search and programmable solving, and 3) to explore the performance characteristics of the framework. Currently, we are integrating the Gecode solver =-=[7]-=- in MCP [24]. Moreover, we think it is an important challenge for Prolog implementations to offer more flexible, programmed search strategies. The stack freezing functionality available in tabulated P... |

21 | A Syntactic Approach to Combining Functional Notation, Lazy Evaluation, and Higher-Order in LP Systems
- Casas, Cabeza, et al.
(Show Context)
Citation Context ...integration of Functional Programming and (Constraint) Logic Programming. On the one hand, we have CLP languages with support for a functional notation of predicates, such as Mercury [17] and Ciao 12=-=[4]-=-. Mercury allows the user to program search strategies by using the underlying depth-first search, much like any CLP language. Ciao offers two alternative search strategies, breadth-first search and i... |

19 |
Polytypic unification
- Jansson, Jeuring
- 1998
(Show Context)
Citation Context ...viding an instance of a Herbrand term equality constraint solver for our Solver type class. However, it remains an open issue how to fit the works of Claessen and Ljunglöf [5] and Jansson and Jeuring =-=[9]-=- for adding additional type safety to solver terms into our solver-independent framework. Logic Programming and Prolog have also inspired work on search strategies in Functional Programming. That is t... |

17 | On a tighter integration of functional and logic programming
- Brassel, Huch
- 2007
(Show Context)
Citation Context ...ies; it has a fixed search strategy. However, the KiCS Curry system, implemented in Haskell, does not offer any constraint solvers; yet, it does provide reflective access to the program’s search tree =-=[3]-=-, allowing programmed or encapsulated search. As far as we can tell, their implementation technique prevents this programmed search from being combined with constraint solving. Embedding Logic Program... |

13 | Prolog’s control constructs in a functional setting - Axioms and implementation
- Hinze
- 1992
(Show Context)
Citation Context ...st-based backtracking monad—which Wadler pioneered before the introduction of monads [20]—upon which various improvements have been made, e.g. breadth-first search [15], Prolog’s pruning operator cut =-=[8]-=-, and fair interleaving [10]. The Alma-0 [1] has a similar objective in an imperative setting: it adds Prolog-like depth-first search and pruning features to Modula-2. FaCiLe is a finite domain constr... |

12 |
Application de la programmation par contraintes à des problèmes de gestion du trafic aérien
- Barnier
- 2002
(Show Context)
Citation Context ...tive setting: it adds Prolog-like depth-first search and pruning features to Modula-2. FaCiLe is a finite domain constraint library for OCaml, developed as part of the Ph.D. thesis of Nicolas Barnier =-=[2]-=-. FaCiLe’s fixed search stratgy is depth-first search; on top of this, optimization is possible by means of both the branch-andbound and restart strategies. The implementation relies on mutable state.... |

8 |
terminating monad transformers: (functional pearl
- Backtracking
- 2005
(Show Context)
Citation Context ...—which Wadler pioneered before the introduction of monads [20]—upon which various improvements have been made, e.g. breadth-first search [15], Prolog’s pruning operator cut [8], and fair interleaving =-=[10]-=-. The Alma-0 [1] has a similar objective in an imperative setting: it adds Prolog-like depth-first search and pruning features to Modula-2. FaCiLe is a finite domain constraint library for OCaml, deve... |

4 | High-level nondeterministic abstractions in
- Michel, See, et al.
- 2006
(Show Context)
Citation Context ...the traversal. The Comet approach does not support a notion of composable search transformers. Interestingly the Comet approach to search can also be implemented in C++ using macros and continuations =-=[12]-=-. Functional (Constraint) Logic Programming Several programming languages have been devoted to the integration of Functional Programming and (Constraint) Logic Programming. On the one hand, we have CL... |