Results 1  10
of
89
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 866 (25 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.
Unification: A multidisciplinary survey
 ACM Computing Surveys
, 1989
"... The unification problem and several variants are presented. Various algorithms and data structures are discussed. Research on unification arising in several areas of computer science is surveyed, these areas include theorem proving, logic programming, and natural language processing. Sections of the ..."
Abstract

Cited by 124 (1 self)
 Add to MetaCart
The unification problem and several variants are presented. Various algorithms and data structures are discussed. Research on unification arising in several areas of computer science is surveyed, these areas include theorem proving, logic programming, and natural language processing. Sections of the paper include examples that highlight particular uses
A Prolog Technology Theorem Prover: Implementation by an Extended Prolog Compiler
 Journal of Automated Reasoning
, 1987
"... A Prolog technology theorem prover (PTTP) is an extension of Prolog that is complete for the full firstorder predicate calculus. It differs from Prolog in its use of unification with the occurs check for soundness, the modelelimination reduction rule that is added to Prolog inferences to make the ..."
Abstract

Cited by 109 (2 self)
 Add to MetaCart
(Show Context)
A Prolog technology theorem prover (PTTP) is an extension of Prolog that is complete for the full firstorder predicate calculus. It differs from Prolog in its use of unification with the occurs check for soundness, the modelelimination reduction rule that is added to Prolog inferences to make the inference system complete, and depthfirst iterativedeepening search instead of unbounded depthfirst search to make the search strategy complete. A Prolog technology theorem prover has been implemented by an extended PrologtoLISP compiler that supports these additional features. It is capable of proving theorems in the full firstorder predicate calculus at a rate of thousands of inferences per second. 1 This is a revised and expanded version of a paper presented at the 8th International Conference on Automated Deduction, Oxford, England, July 1986, and is to appear in Journal of Automated Reasoning. This research was supported by the Defense Advanced Research Projects Agency under Co...
Records for Logic Programming
 Journal of Logic Programming
, 1994
"... CFT is a new constraint system providing records as logical data structure for constraint (logic) programming. It can be seen as a generalization of the rational tree system employed in Prolog II, where finergrained constraints are used, and where subtrees are identified by keywords rather than by ..."
Abstract

Cited by 101 (19 self)
 Add to MetaCart
(Show Context)
CFT is a new constraint system providing records as logical data structure for constraint (logic) programming. It can be seen as a generalization of the rational tree system employed in Prolog II, where finergrained constraints are used, and where subtrees are identified by keywords rather than by position. CFT is defined by a firstorder structure consisting of socalled feature trees. Feature trees generalize the ordinary trees corresponding to firstorder terms by having their edges labeled with field names called features. The mathematical semantics given by the feature tree structure is complemented with a logical semantics given by five axiom schemes, which we conjecture to comprise a complete axiomatization of the feature tree structure. We present a decision method for CFT, which decides entailment / disentailment between possibly existentially quantified constraints. Since CFT satisfies the independence property, our decision method can also be employed for checking the sat...
FiniteTree Analysis for Constraint LogicBased Languages: The Complete Unabridged Version
, 2001
"... Logic languages based on the theory of rational, possibly infinite, trees have much appeal in that rational trees allow for faster unification (due to the safe omission of the occurscheck) and increased expressivity (cyclic terms can provide very efficient representations of grammars and other usef ..."
Abstract

Cited by 46 (16 self)
 Add to MetaCart
Logic languages based on the theory of rational, possibly infinite, trees have much appeal in that rational trees allow for faster unification (due to the safe omission of the occurscheck) and increased expressivity (cyclic terms can provide very efficient representations of grammars and other useful objects). Unfortunately, the use of infinite rational trees has problems. For instance, many of the builtin and library predicates are illdefined for such trees and need to be supplemented by runtime checks whose cost may be significant. Moreover, some widelyused program analysis and manipulation techniques are correct only for those parts of programs working over finite trees. It is thus important to obtain, automatically, a knowledge of the program variables (the finite variables) that, at the program points of interest, will always be bound to finite terms. For these reasons, we propose here a new dataflow analysis, based on abstract interpretation, that captures such information. We present a parametric domain where a simple component for recording finite variables is coupled, in the style of the open product construction of Cortesi et al., with a generic domain (the parameter of the construction) providing sharing information. The sharing domain is abstractly specified so as to guarantee the correctness of the combined domain and the generality of the approach. This finitetree analysis domain is further enhanced by coupling it with a domain of Boolean functions, called finitetree dependencies, that precisely captures how the finiteness of some variables influences the finiteness of other variables. We also summarize our experimental results showing how finitetree analysis, enhanced with finitetree dependencies, is a practical means of obtaining precise finitenes...
Positive Active XML
 In Proc. of ACM PODS
, 2004
"... The increasing popularity of XML and Web services introduced a new generation of documents, called Active XML documents (AXML), where some of the data is given explicitly while other parts are given intensionally, by means of embedded calls to Web services. Web services in this context can exchange ..."
Abstract

Cited by 42 (17 self)
 Add to MetaCart
(Show Context)
The increasing popularity of XML and Web services introduced a new generation of documents, called Active XML documents (AXML), where some of the data is given explicitly while other parts are given intensionally, by means of embedded calls to Web services. Web services in this context can exchange intensional information, using AXML documents as parameters and results.
Modeling answer constraints in Constraint Logic Programs
 Proc. Eighth Int'l Conf. on Logic Programming
, 1991
"... The constraint logic programming paradigm CLP(X) (CLP for short) has been proposed by Jaffar and Lassez in order to integrate a generic computational mechanism based on constraints with the logic programming framework. This paradigm retains the semantic properties of logic languages, namely the exis ..."
Abstract

Cited by 37 (12 self)
 Add to MetaCart
(Show Context)
The constraint logic programming paradigm CLP(X) (CLP for short) has been proposed by Jaffar and Lassez in order to integrate a generic computational mechanism based on constraints with the logic programming framework. This paradigm retains the semantic properties of logic languages, namely the existence of equivalent operational, model theoretic and fixpoint semantics. Moreover, since computation is performed over the particular domain of computation X , CLP(X) programs have an equivalent "algebraic" semantics, i.e. a semantics which is defined directly on the algebraic structure of the domain X . In this paper we propose an extension of such a semantics, for the success set case, in order to fully characterize the operational behaviour of programs. We introduce a framework for defining various notions of models, each corresponding to a specific operationally observable property. The construction is based on a new notion of interpretation (set of constrained atoms), on a natural exten...
Observable Semantics for Constraint Logic Programs
 Journal of Logic and Computation
, 1995
"... We consider the Constraint Logic Programming paradigm CLP(X ), as defined by Jaffar and Lassez [29, 28]. CLP(X ) integrates a generic computational mechanism based on constraints within the logic programming framework. The paradigm retains the semantic properties of pure logic programs, namely the e ..."
Abstract

Cited by 33 (2 self)
 Add to MetaCart
We consider the Constraint Logic Programming paradigm CLP(X ), as defined by Jaffar and Lassez [29, 28]. CLP(X ) integrates a generic computational mechanism based on constraints within the logic programming framework. The paradigm retains the semantic properties of pure logic programs, namely the existence of equivalent operational, modeltheoretic and fixpoint semantics. We introduce a framework for defining various semantics, each corresponding to a specific observable property of CLP computations. Each semantics can be defined either operationally (i.e. topdown) or declaratively (i.e. bottomup). The construction is based on a new notion of interpretation, on a natural extension of the standard notion of model and on the definition of various immediate consequences operators, whose least fixpoints on the lattice of interpretations are models corresponding to various observable properties. We first consider some semantics defined in [29] and their relations, in terms of correctne...
Automated termination analysis for logic programs with cut
, 2010
"... Termination is an important and wellstudied property for logic programs. However, almost all approaches for automated termination analysis focus on definite logic programs, whereas realworld Prolog programs typically use the cut operator. We introduce a novel preprocessing method which automatica ..."
Abstract

Cited by 32 (14 self)
 Add to MetaCart
(Show Context)
Termination is an important and wellstudied property for logic programs. However, almost all approaches for automated termination analysis focus on definite logic programs, whereas realworld Prolog programs typically use the cut operator. We introduce a novel preprocessing method which automatically transforms Prolog programs into logic programs without cuts, where termination of the cutfree program implies termination of the original program. Hence after this preprocessing, any technique for proving termination of definite logic programs can be applied. We implemented this preprocessing in our
Moded Flat GHC and Its MessageOriented Implementation Technique
, 1994
"... Concurrent processes can be used both for programming computation and for programming storage. Previous implementations of Flat GHC, however, have been tuned for computationintensive programs, and perform poorly for storageintensive programs (such as programs implementing reconfigurable data struc ..."
Abstract

Cited by 30 (10 self)
 Add to MetaCart
Concurrent processes can be used both for programming computation and for programming storage. Previous implementations of Flat GHC, however, have been tuned for computationintensive programs, and perform poorly for storageintensive programs (such as programs implementing reconfigurable data structures using processes and streams) and demanddriven programs. This paper proposes an optimization technique for programs in which processes are almost always suspended. The technique compiles unification for data transfer into message passing. Instead of reducing the number of process switching operations, the technique optimizes the cost of each process switching operation and reduces the number of cons operations for data buffering.