Results 1 -
7 of
7
Constraint Logic Programming: A Survey
"... Constraint Logic Programming (CLP) is a merger of two declarative paradigms: constraint solving and logic programming. Although a relatively new field, CLP has progressed in several quite different directions. In particular, the early fundamental concepts have been adapted to better serve in differe ..."
Abstract
-
Cited by 704 (20 self)
- Add to MetaCart
Constraint Logic Programming (CLP) is a merger of two declarative paradigms: constraint solving and logic programming. Although a relatively new field, CLP has progressed in several quite different directions. In particular, the early fundamental concepts have been adapted to better serve in different areas of applications. In this survey of CLP, a primary goal is to give a systematic description of the major trends in terms of common fundamental concepts. The three main parts cover the theory, implementation issues, and programming for applications.
Eliminating Array Bound Checking Through Dependent Types
- In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation
, 1998
"... We present a type-based approach to eliminating array bound checking and list tag checking by conservatively extending Standard ML with a restricted form of dependent types. This enables the programmer to capture more invariants through types while type-checking remains decidable in theory and can s ..."
Abstract
-
Cited by 162 (24 self)
- Add to MetaCart
We present a type-based approach to eliminating array bound checking and list tag checking by conservatively extending Standard ML with a restricted form of dependent types. This enables the programmer to capture more invariants through types while type-checking remains decidable in theory and can still be performed efficiently in practice. We illustrate our approach through concrete examples and present the result of our preliminary experiments which support support the feasibility and effectiveness of our approach. 1 Introduction The absence of run-time array bound checks is an infamous source of fatal errors for programs in languages such as C. Nonetheless, compilers offer the option to omit array bound checks, since they can turn out to be expensive in practice (Chow 1983; Gupta 1994). In statically typed languages such as ML, one would like to provide strong guarantees about the safety of all operations, so array bound checks cannot be omitted in general. The same is true for Ja...
An Empirical Study of the Runtime Behavior of Higher-Order Logic Programs
- University of Pennsylvania. Available as
, 1992
"... this document are those of the author and should not be interpreted as representing the official policies, either expressed or implied, of the U.S. Government. ..."
Abstract
-
Cited by 28 (7 self)
- Add to MetaCart
this document are those of the author and should not be interpreted as representing the official policies, either expressed or implied, of the U.S. Government.
Interval Linear Constraint Solving Using the Preconditioned Interval Gauss-Seidel Method
- IN PROCEEDINGS OF THE TWELFTH INTERNATIONAL CONFERENCE ON LOGIC PROGRAMMING, LOGIC PROGRAMMING
, 1994
"... We propose the use of the preconditioned interval Gauss-Seidel method as the backbone of an efficient linear equality solver in a CLP(Interval) language. The method, as originally designed, works only on linear systems with square coefficient matrices. Even imposing such a restriction, a naive incor ..."
Abstract
-
Cited by 12 (1 self)
- Add to MetaCart
We propose the use of the preconditioned interval Gauss-Seidel method as the backbone of an efficient linear equality solver in a CLP(Interval) language. The method, as originally designed, works only on linear systems with square coefficient matrices. Even imposing such a restriction, a naive incorporation of the traditional preconditioning algorithm in a CLP language incurs a high worst-case time complexity of O(n^4), where n is the number of variables in the linear system. In this paper, we generalize the algorithm for general linear systems with m constraints and n variables, and give a novel incremental adaptation of preconditioning of O(n 2 (n + m)) complexity. The efficiency of the incremental preconditioned interval Gauss-Seidel method is demonstrated using large-scale linear systems.
Repeated Redundant Inequalities in Constraint Logic Programming
, 1994
"... A number of Constraint logic Programming systems, including CLP(R) and Prolog III, decide simultaneous linear inequalities as part of the fundamental operational step of constraint solving. While this can contribute tremendously to the usefulness of the systems, it is computationally quite expensive ..."
Abstract
-
Cited by 5 (4 self)
- Add to MetaCart
A number of Constraint logic Programming systems, including CLP(R) and Prolog III, decide simultaneous linear inequalities as part of the fundamental operational step of constraint solving. While this can contribute tremendously to the usefulness of the systems, it is computationally quite expensive. Non-ground inequalities must generally be tested for consistency with the collected constraint set and then added to it, increasing its size, and thus making the next such test more expensive. Future redundant inequalities in a program are those that are guaranteed to be subsumed after no more than one subsequent procedure call, usually in the context of a recursive procedure. It has been noted that such inequalities need only be tested for consistency with the current constraint set, thus resulting in dramatic savings in execution speed and space usage. In this paper we generalize the notion of future redundancy in a number of ways and thus broaden its applicability. Thus we show how to d...
Interval Linear Constraint Solving in Constraint Logic Programming
, 1994
"... Existing interval constraint logic programming languages, such as BNR Prolog, work under the framework of interval narrowing and are deficient in solving general systems of constraints over real, which constitute an important class of problems in engineering and other applications. In this thesis, w ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Existing interval constraint logic programming languages, such as BNR Prolog, work under the framework of interval narrowing and are deficient in solving general systems of constraints over real, which constitute an important class of problems in engineering and other applications. In this thesis, we suggest to separate linear constraint solving from non-linear constraint solving. Two implementations of an efficient interval linear equality constraint solver, which are based on generalized interval Gaussian elimination and the incremental preconditioned interval Gauss-Seidel method, are proposed. We show how the solvers can be adapted to incremental execution and incorporated into a constraint logic programming language already equipped with a non-linear solver based on interval narrowing. The two solvers share common interval variables, interact and cooperate in a round-robin fashion during computation, resulting in an efficient interval constraint arithmetic language CIAL. The CIAL p...
Efficient Interval Linear Equality Solving in Constraint Logic Programming
"... Existing interval constraint logic programming languages, such as BNR Prolog, work under the framework of interval narrowing and are deficient in solving systems of linear constraints over real numbers, which constitute an important class of problems in engineering and other applications. In this pa ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Existing interval constraint logic programming languages, such as BNR Prolog, work under the framework of interval narrowing and are deficient in solving systems of linear constraints over real numbers, which constitute an important class of problems in engineering and other applications. In this paper, we suggest to separate linear equality constraint solving from inequality and nonlinear constraint solving. The implementation of an efficient interval linear constraint solver, which is based on the preconditioned interval Gauss-Seidel method, is proposed. We show how the solver can be adapted to incremental execution and incorporated into a constraint logic programming language already equipped with a non-linear solver based on interval narrowing. The two solvers share common interval variables, interact and cooperate in a roundrobin fashion during computation, resulting in an efficient interval constraint arithmetic language CIAL. The CIAL prototypes, based on CLP(R), are constructed...

