Magic sets and other strange ways to implement logic programs (extended abstract)
PODS '86 Proceedings of the fifth ACM SIGACT-SIGMOD symposium on Principles of database systems
Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Principles of database and knowledge-base systems, Vol. I
Principles of database and knowledge-base systems, Vol. I
Towards a theory of declarative knowledge
Foundations of deductive databases and logic programming
Efficient evaluation of right-, left-, and multi-linear rules
SIGMOD '89 Proceedings of the 1989 ACM SIGMOD international conference on Management of data
Right-, left-, and multi-linear rule transformations that maintain context information
Proceedings of the sixteenth international conference on Very large databases
Overbound and right-linear queries
PODS '91 Proceedings of the tenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Warren's abstract machine: a tutorial reconstruction
Warren's abstract machine: a tutorial reconstruction
Handbook of theoretical computer science (vol. B)
The well-founded semantics for general logic programs
Journal of the ACM (JACM)
Is there anything better than magic
Proceedings of the 1990 North American conference on Logic programming
Logical foundations of object-oriented and frame-based languages
Journal of the ACM (JACM)
The Semantics of Predicate Logic as a Programming Language
Journal of the ACM (JACM)
Principles of Database and Knowledge-Base Systems: Volume II: The New Technologies
Principles of Database and Knowledge-Base Systems: Volume II: The New Technologies
Data Structures and Algorithms
Data Structures and Algorithms
A front-end to deductive database systems for multiparadigm programming
SEEP '96 Proceedings of the 1996 International Conference on Software Engineering: Education and Practice (SE:EP '96)
Automatically partitioning packet processing applications for pipelined architectures
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Hi-index | 0.00 |
A program partition scheme for stratified programs introduced by Apt, Blair, and Walker is used to study efficient computation of logic programs. We consider three types of program partitions and their corresponding graph representations: 1) the natural partition, 2) stratified partitions, and 3) the reduced partition. The natural (program) partition consists of definitions of relations, each definition being a subprogram. Subprograms of a program partition may consist of several relations. A partition graph is introduced for a program partion, each node of which corresponds to a subprogram. The partition graph for a stratified partition is a directed acyclic graph (DAG). A stratified partition decomposes a program into modules. The stratified partition with the maximum number of modules is the reduced partition. The cost to achieve a reduced partition is linear in the program size, using well known graph algorithms. We introduce the modular interpretations, which are equivalent in semantics to the standard interpretation. The modular interpretations offer encapsulation and may reduce the computation cost for some modules significantly. The modular approach can play an important role in query optimization, efficient termination, programming design, and software engineering. We classify query types and answer types then discuss query optimization for some query types. Many efficient query processing strategies are applicable to restricted subclasses of programs. The program partition method allows us to select the most efficient strategy for each module. For example, if a module is a uniformly bounded recursion, then the module can be terminated efficiently. If a module defines the transitive closure, then efficient program transformations may be applied to this module.