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 top-down and bottom-up 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...
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 subset-logic programs is that of a monotonic memo-table, i.e., a memo-table 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 subset-logic programs is that of a monotonic memo-table, i.e., a memo-table whose entries can monotonically grow or shrink in an appropriate partial order. We present in stages the paradigm of subset-logic 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 memo-tables are a practical tool for implementing a set-oriented 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, run-time structures, performance analysis / Address correspondence to...
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 6 (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 logical-consequence 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, Zermelo-Fraenkel set theory, freeness axioms, set unification, Herbrand structure, logical semantics.
Implementation Of Subset Logic Programs
"... Subset-logic 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
Subset-logic 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 subset-logic 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 subset-logic programs is that of a "monotonic memo-table," i.e., a memo-table who entries can monot...
The Compilation of SL, a Set-Based Logic Language for Generic Parallel Architectures
- Journal of Programming Languages
, 1997
"... Set-based 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 set-based logic language, SL ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Set-based 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 set-based 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 partial-order 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 partial-order 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, partial-order assertions renders clear formulations to problems involving aggregate operations (first-order 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 model-theoretic and operational semantics, and prove the correctness of the latter. Our proposed operational semantics employs a mixed strategy: top-down with memoization and bottom-up fixed-point iteration. Keywords: Partial Orders, Lattices, Monotonic Operations, Aggregation, S...

