Results 1 
7 of
7
Optimizing Clause Resolution: Beyond Unification Factoring
 In International Logic Programming Symposium
, 1995
"... While clause resolution is central to logic programming, practical efforts to optimize resolution have largely concerned efficient clause indexing. One recent exception is Unification Factoring [5], which optimizes backtracking through clause heads of a predicate. Now we consider the problem of opti ..."
Abstract

Cited by 8 (5 self)
 Add to MetaCart
While clause resolution is central to logic programming, practical efforts to optimize resolution have largely concerned efficient clause indexing. One recent exception is Unification Factoring [5], which optimizes backtracking through clause heads of a predicate. Now we consider the problem of optimizing clause resolution in a more general setting than Unification Factoring. One fundamental change is to use mode information to distinguish between elementary matching and unification operations that arise in unifying a term. In addition, we expand the traditional notion of clause resolution to allow for tabled predicates. The result is that our optimization technique becomes relevant for both topdown and bottomup evaluations. Our technique uses Clause Resolution Automata (CRA), to model clause resolution in this expanded setting. The CRAs enable us to succinctly capture the cost of resolution. Furthermore, they can be readily implemented as a source transformation. After formally deve...
Set Constructors, Finite Sets, and Logical Semantics
 Journal of Logic Programming
, 1994
"... The use of sets in declarative programming has been advocated by several authors in the literature. A representation often chosen for finite sets is that of scons, parallel to the list constructor cons. The logical theory for such constructors is usually tacitly assumed to be some formal system of c ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
The use of sets in declarative programming has been advocated by several authors in the literature. A representation often chosen for finite sets is that of scons, parallel to the list constructor cons. The logical theory for such constructors is usually tacitly assumed to be some formal system of classical set theory. However, classical set theory is formulated for a general setting, dealing with both finite and infinite sets, and not making any assumptions about particular set constructors. In giving logicalconsequence semantics for programs with finite sets, it is important to know exactly what connection exists between sets and set constructors. The main contribution of this paper lies in establishing these connections rigorously. We give a formal system, called SetAx, designed around the scons constructor. We distinguish between two kinds of set constructors, scons(x; y) and dscons(x; y), where both represent fxg [ y, but x 2 y is possible in the former, while x 62 y holds in the latter. Both constructors find natural uses in specifying sets in logic programs. The design of SetAx is guided by our choice of scons as a primitive symbol of our theory rather than as a defined one, and by the need to deduce nonmembership relations between terms, to enable the use of dscons. After giving the axioms SetAx, we justify it as a suitable theory for finite sets in logic programming with the aid of the classical theory and unification, and formulate Herbrand structure within it. Together, these provide a rigorous foundation for the set constructors in the context of logical semantics. KEYWORDS: set constructors, finite sets, ZermeloFraenkel set theory, freeness axioms, set unification, Herbrand structure, logical semantics.
Subset Logic Programs And Their Implementation
, 1994
"... Machine (WAM) to implement the paradigm and that these changes blend well with the overall machinery of the WAM. A central feature in the implementation of subsetlogic programs is that of a monotonic memotable, i.e., a memotable whose entries can monotonically grow or shrink in an appropriate ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
Machine (WAM) to implement the paradigm and that these changes blend well with the overall machinery of the WAM. A central feature in the implementation of subsetlogic programs is that of a monotonic memotable, i.e., a memotable whose entries can monotonically grow or shrink in an appropriate partial order. We present in stages the paradigm of subsetlogic progams, showing the effect of each feature on the implementation. The implementation has been completed, and we present performance figures to show the efficiency and costs of memoization. Our conclusion is that the monotonic memotables are a practical tool for implementing a setoriented logic programming language. We also compare this system with other closely related systems, especially XSB and CORAL. Keywords: subset and relational program clauses, sets, set matching and unification, memo tables, monotonic aggregation, Warren Abstract Machine, runtime structures, performance analysis / Address correspondence to...
Implementation Of Subset Logic Programs
"... Subsetlogic programs are built up of three kinds of program clauses: subset, equational, and relational clauses. Using these clauses, we can program solutions to a broad range of problems of interest in logic programming and deductive databases. In an earlier paper [Jay92], we discussed the impleme ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Subsetlogic programs are built up of three kinds of program clauses: subset, equational, and relational clauses. Using these clauses, we can program solutions to a broad range of problems of interest in logic programming and deductive databases. In an earlier paper [Jay92], we discussed the implementation of subset and equational program clauses. This paper substantially extends that work, and focuses on the more expressive paradigm of subset and relational clauses. This paradigm supports setof operations, transitive closures, monotonic aggregation as well as incremental and lazy eager enumeration of sets. Although the subsetlogic paradigm differs substantially from that of Prolog, we show that few additional changes are needed to the WAM [War83] to implement the paradigm and that these changes blend well with the overall machinery of the WAM. A central feature in the implementation of subsetlogic programs is that of a "monotonic memotable," i.e., a memotable who entries can monot...
The Compilation of SL, a SetBased Logic Language for Generic Parallel Architectures
 Journal of Programming Languages
, 1997
"... Setbased languages have emerged as a powerful means for expressing not only programs but also requirements, test cases and so on. However, a uniform compilation schema for sets has not yet been completely developed. The present paper tries to overcome this lack using a setbased logic language, SL ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Setbased languages have emerged as a powerful means for expressing not only programs but also requirements, test cases and so on. However, a uniform compilation schema for sets has not yet been completely developed. The present paper tries to overcome this lack using a setbased logic language, SL (set language), as target. The approach is based on an imperative abstract machine, the SAM (set abstract machine). The translation from SL to SAL (SAM assembly language) is described and all the possible optimizations, both at source code level and at assembly code level, are detailed. The potentials for identifying parallel flows of computations are analysed. Several examples of compilations are presented and discussed.
Partial Order Logic Programming
, 1993
"... This paper shows the use of partialorder assertions and lattice domains for logic programming. We illustrate the paradigm using a variety of examples, ranging from program analysis to deductive databases. These applications are characterized by a need to solve circular constraints and perform aggre ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
This paper shows the use of partialorder assertions and lattice domains for logic programming. We illustrate the paradigm using a variety of examples, ranging from program analysis to deductive databases. These applications are characterized by a need to solve circular constraints and perform aggregate operations. We show in this paper that defining functions with subset assertions and, more generally, partialorder assertions renders clear formulations to problems involving aggregate operations (firstorder and inductive) and recursion. Indeed, as pointed out by Van Gelder [V92], for many problems in which the use of aggregates has been proposed, the concept of subset is what is really necessary. We provide modeltheoretic and operational semantics, and prove the correctness of the latter. Our proposed operational semantics employs a mixed strategy: topdown with memoization and bottomup fixedpoint iteration. Keywords: Partial Orders, Lattices, Monotonic Operations, Aggregation, S...