Results 11 -
12 of
12
Design of a Finite Domain Constraint Programming Library for ML
, 1999
"... Existing libraries and languages for finite domain constraint programming have backtracking-based depth-first search built-in as the only inference engine. Exceptions are the languages claire, which supports the programming of backtracking-based engines, and Oz, which allows the programming of copyi ..."
Abstract
- Add to MetaCart
Existing libraries and languages for finite domain constraint programming have backtracking-based depth-first search built-in as the only inference engine. Exceptions are the languages claire, which supports the programming of backtracking-based engines, and Oz, which allows the programming of copying-based engines. This is achieved through language-specific constructs, which precludes the transfer of programmable inference engines to conventional languages. In this paper, the design of a finite domain library for the functional language ML is presented. The combination of several design concepts allows to program backtracking as well as copying-based engines. The design of the library is presented from first principles and provides a blueprint for a practical implementation in a functional or object-oriented setting. 1 Introduction Finite domain constraint problems are problems of assigning integer values to variables subject to arithmetic and symbolic constraints and possibly an obj...
Reasoning with Continuations III: A Complete Calculus of Control
, 1992
"... [Anybody taye in the first paragraph? Thanks!] The central result of this paper is an extension of the lambda(v)-C-calculus for a complete set of control operators and a correspondence theorem between the new theory and the lambda/beta/eta-calculus. Technically, the theorem shows that the two calcul ..."
Abstract
- Add to MetaCart
[Anybody taye in the first paragraph? Thanks!] The central result of this paper is an extension of the lambda(v)-C-calculus for a complete set of control operators and a correspondence theorem between the new theory and the lambda/beta/eta-calculus. Technically, the theorem shows that the two calculi prove the same equations with respect to the well-known continuation-passing style translation (and its inverse), which is the standard tool for defining control operators via translation into a functional language. As a corollary, the calculus proves all program equivalences between terms over the pure language extended with control operators. We believe that this work has important consequences for the direct-style compilation of programming languages with control operators.

