Results 1 -
7 of
7
Declarative Incorrectness Diagnosis in Constraint Logic Programming
- Joint Conference on Declarative Programming
, 1996
"... . Our concern in this paper is the declarative incorrectness diagnosis of constraint logic programs. Many techniques have been developed for LP but cannot be merely adapted to CLP. Constraint logic program semantics is redefined, using a reject criterion, in term of skeletons. Skeletons give an i ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
. Our concern in this paper is the declarative incorrectness diagnosis of constraint logic programs. Many techniques have been developed for LP but cannot be merely adapted to CLP. Constraint logic program semantics is redefined, using a reject criterion, in term of skeletons. Skeletons give an intrinsic definition to the answers provided by a program. The reject criterion can take into account the behaviour of an incomplete constraint solver. The main contribution of this paper is to prove that: if there exists a wrong answer then there is an incorrect clause in the program, and this clause occurs in the answer skeleton. Moreover, we give an algorithm which, given an incorrectness symptom, localizes a faulty clause and the circumstances of its incorrectness. Above all, there are new notions adapted to CLP framework. 1 Introduction Program debugging is known to be a time consuming task in the programming process, but, constraint logic program debugging is relatively unexplo...
Finding Conflict Sets and Backtrack Points in CLP(
- In Proceedings of the 11th International Conference on Logic Programming -- ICLP`94
, 1994
"... This paper presents a method for intelligent backtracking in CLP(!). Our method integrates a depth-first intelligent backtracking algorithm developed for logic programming with an original constraint satisfaction algorithm which naturally generates sets of conflicting constraints. We prove that if C ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
This paper presents a method for intelligent backtracking in CLP(!). Our method integrates a depth-first intelligent backtracking algorithm developed for logic programming with an original constraint satisfaction algorithm which naturally generates sets of conflicting constraints. We prove that if CLP(!) is assumed to cover strictly the domain of real numbers, then the constraint satisfaction algorithm provides minimal conflict sets to be used as a basis for intelligent backtracking. We then extend the backtracking method to cover a two-sorted domain, where variables can be bound to either structured terms or real numbers. We discuss a practical implementation of the algorithm using a generator-consumer approach to the recording of variable bindings, and we give an example of a CLP(!) program which benefits significantly from intelligent backtracking. 1
Meta-Programming in CLP(R)
, 1994
"... A widely used property of Prolog is that it is possible to write Prolog programs to construct and manipulate other Prolog programs in a very general manner. Unfortunately, this property is not carried over to richer languages such as CLP(R) -- the manipulation of CLP(R) programs in CLP(R) is quit ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
A widely used property of Prolog is that it is possible to write Prolog programs to construct and manipulate other Prolog programs in a very general manner. Unfortunately, this property is not carried over to richer languages such as CLP(R) -- the manipulation of CLP(R) programs in CLP(R) is quite limited. The reason is that the equality of terms in CLP(R) is not based on their syntactic structure. We propose an extended language, CLP(R+M), in which programs may be represented and structurally manipulated. Importantly, CLP(R+M) is not just a meta-language for CLP(R), but it can also be used as its own meta-language. We present a decision algorithm for R+M constraints, discuss implementation issues, and describe the implementation of a sublass of R+M constraints. Finally, by building on the extended language, we present an integrated set of system predicates and a methodology for practical meta-programming. An earlier version of this paper appeared in the Proceedings of the N...
Performance Comparison between Conventional and Logic Programming Systems
, 1998
"... This work compares and analyses conventional and logic programming systems using a qualitative and quantitative approach. Logic programming is known to be easier and simpler than imperative programming, but it is not very popular because of its believed inefficiency. Our work shows that logic progra ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
This work compares and analyses conventional and logic programming systems using a qualitative and quantitative approach. Logic programming is known to be easier and simpler than imperative programming, but it is not very popular because of its believed inefficiency. Our work shows that logic programming can be as efficient as imperative programming for a wide range of symbolic and scientific applications. We used different Prolog-based systems, including SICStus, XSB, Yap, CLP(R) and Aurora and compared to C, a structured language. We focus our studies on programmability, execution times and memory usage, and show that the use of techniques such as compilation, code specialization, tabling, constraints and parallelisation can improve the performance of declarative systems allowing them to behave better than imperative systems. Our best result shows that a logic program can run 200 times faster than its correspondent in C. Keywords: logic programming, conventional programming, program...
Armin Wolf GMD German National Research Center for Information Technology e-mail:
"... In this paper, we propose ordered constraint hierarchies and a non-trivial error function to model and solve over-constrained real-world problems adequately. We present an algorithm to flatten constraint hierarchies consisting of polynomial equations and inequations. The algorithm is based on an inc ..."
Abstract
- Add to MetaCart
In this paper, we propose ordered constraint hierarchies and a non-trivial error function to model and solve over-constrained real-world problems adequately. We present an algorithm to flatten constraint hierarchies consisting of polynomial equations and inequations. The algorithm is based on an incomplete finite domain constraint solver. We conclude with some implementation details, some examples, and some aspects about our future work. 1 Introduction Constraint logic programming is a useful tool to solve practical problems where conditions and prerequisites have to be fulfilled. Both are representable by constraints at a high level of declarativity. In practical applications like planning and scheduling, we often find situations where the problems are over-constrained and a correct solution is not possible, but it is undesirable that a system reacts with the output: no solution like normal constraint logic programming (CLP) systems do. Well-known over-constrained problems are initia...
Transforming Ordered Constraint Hierarchies into Ordinary Constraint Systems
- In Jampel et al
, 1996
"... . In this paper, we propose ordered constraint hierarchies and a non-trivial error function to model and solve over-constrained realworld problems adequately. We substantiate our proposition by an example. Then we present a new method to transform constraint hierarchies into equivalent ordinary cons ..."
Abstract
- Add to MetaCart
. In this paper, we propose ordered constraint hierarchies and a non-trivial error function to model and solve over-constrained realworld problems adequately. We substantiate our proposition by an example. Then we present a new method to transform constraint hierarchies into equivalent ordinary constraint systems. For practical applications, we present a modified algorithm based on an incomplete finite domain constraint solver. We conclude with a prototype implementation of the method and some aspects about our future work. 1 Introduction In real-world applications, constraints represent conditions which have to be fulfilled. With an according constraint solver, we get a useful problem solving system, which has a high degree of declarativity. It distinguishes strongly between the two parts of problem solving algorithms: logic and control (Kolwalski). The logic is given by the constraints, and the constraint solver is the controller of this kind of logic. Two wide areas where constrain...
Constraints, Varieties, and Algorithms
, 2002
"... The idea to program with constraints for special purposes has been around since the 1960-s. This has resulted in the notion of... ..."
Abstract
- Add to MetaCart
The idea to program with constraints for special purposes has been around since the 1960-s. This has resulted in the notion of...

