Results 1 -
5 of
5
Efficient Bottom-Up Evaluation Of Logic Programs
- THE STATE OF THE ART IN COMPUTER SYSTEMS AND SOFTWARE ENGINEERING
, 1992
"... In recent years, much work has been directed towards evaluating logic programs and queries on deductive databases by using an iterative bottom-up fixpoint computation. The resulting techniques offer an attractive alternative to Prolog-style top-down evaluation in several situations. They are sound ..."
Abstract
-
Cited by 42 (4 self)
- Add to MetaCart
In recent years, much work has been directed towards evaluating logic programs and queries on deductive databases by using an iterative bottom-up fixpoint computation. The resulting techniques offer an attractive alternative to Prolog-style top-down evaluation in several situations. They are sound and complete for positive Horn clause programs, are well-suited to applications with large volumes of data (facts), and can support a variety of extensions to the standard logic programming paradigm. We present the basics of database query evaluation and logic programming evaluation, and then discuss bottom-up fixpoint evaluation. We discuss an approach based upon using a program transformation ("Magic Templates") to restrict search, followed by fixpoint computation using a technique ("Semi-naive evaluation") that avoids repeated inferences. The program transformation technique focuses the fixpoint evaluation, which is a forward-chaining strategy, by propagating bindings in the goal in a ma...
Top-Down vs. Bottom-Up Revisited
- In Proceedings of the International Logic Programming Symposium
, 1991
"... Ullman ([Ull89a, Ull89b]) has shown that for the evaluation of safe Datalog programs, bottomup evaluation using Magic Sets optimization has time complexity less than or equal to a particular top-down strategy, Queue-based Rule Goal Tree (QRGT) evaluation. This result has sometimes been incorrectly i ..."
Abstract
-
Cited by 18 (6 self)
- Add to MetaCart
Ullman ([Ull89a, Ull89b]) has shown that for the evaluation of safe Datalog programs, bottomup evaluation using Magic Sets optimization has time complexity less than or equal to a particular top-down strategy, Queue-based Rule Goal Tree (QRGT) evaluation. This result has sometimes been incorrectly interpreted to mean that bottom-up evaluation beats top-down evaluation for evaluating Datalog programs---top-down strategies such as Prolog (which does no memoing, and uses last call optimization) can beat both QRGT and bottom-up evaluation on some Datalog programs. In this paper we compare a Prolog evaluation based on the WAM model (using last call optimization) with a bottom-up execution based on Magic Templates with Tail Recursion optimization ([Ros91]), and show the following: (1) Bottom-up evaluation makes no more inferences than Prolog for range-restricted programs. (2) For a restricted class of programs (which properly includes safe Datalog) the cost of bottom-up evaluation is never ...
Unlimp - Uniqueness as a Leitmotiv for Implementation
, 1992
"... . When evaluation in functional programming languages is explained using -calculus and/or term rewriting systems, expressions and function definitions are often defined as terms, that is as trees. Similarly, the collection of all terms is defined as a forest, that is a directed, acyclic graph where ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
. When evaluation in functional programming languages is explained using -calculus and/or term rewriting systems, expressions and function definitions are often defined as terms, that is as trees. Similarly, the collection of all terms is defined as a forest, that is a directed, acyclic graph where every vertex has at most one incoming edge. Concrete implementations usually drop the last restriction (and sometimes acyclicity as well), i.e. many terms can share a common subterm, meaning that different paths of subterm edges reach the same vertex in the graph. Any vertex in such a graph represents a term. A term is represented uniquely in such a graph if there are no two different vertices representing it. Such a representation can be established by using hash-consing for the creation of heap objects. We investigate the consequences of adopting uniqueness in this sense as a leitmotiv for implementation (called Unlimp), i.e. not allowing any two different vertices in a graph to represent ...
Within ARM's Reach: Compilation of Left-Linear Rewrite Systems via Minimal Rewrite Systems
, 1997
"... A new compilation technique for left-linear term rewriting systems is presented, where rewrite rules are transformed into so-called minimal rewrite rules. These minimal rules have such a simple form that they can be viewed as instructions for an abstract rewriting machine (ARM). ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
A new compilation technique for left-linear term rewriting systems is presented, where rewrite rules are transformed into so-called minimal rewrite rules. These minimal rules have such a simple form that they can be viewed as instructions for an abstract rewriting machine (ARM).
Lazy Structure Sharing for Query Optimization
, 1993
"... We study lazy structure sharing as a tool for optimizing equivalence testing on complex data types. We investigate a number of strategies for a restricted case of the problem and provide upper and lower bounds on their performance (how quickly they effect ideal configurations of our data structure). ..."
Abstract
- Add to MetaCart
We study lazy structure sharing as a tool for optimizing equivalence testing on complex data types. We investigate a number of strategies for a restricted case of the problem and provide upper and lower bounds on their performance (how quickly they effect ideal configurations of our data structure). In most cases, the bounds provide nontrivial improvements over the naive linear-time equivalence-testing strategy that employs no optimization. 1 Supported by a Fannie and John Hertz Foundation fellowship, National Science Foundation Grant No. CCR-8920505, and the Center for Discrete Mathematics and Theoretical Computer Science (DIMACS) under NSF-STC88-09648. 2 Dept. of Computer Science and Automation, Indian Institute of Science, Bangalore 560012, India. Work completed while at Princeton University and DIMACS and supported by DIMACS under NSF-STC88-09648. 3 Also affiliated with NEC Research Institute, 4 Independence Way, Princeton, NJ 08540. Research at Princeton University partially sup...

