DocumentCode :
779980
Title :
Program partition and logic program analysis
Author :
Han, Jia Liang
Author_Institution :
Dept. of Math. & Comput., Southern Queensland Univ., Toowoomba, Qld., Australia
Volume :
21
Issue :
12
fYear :
1995
fDate :
12/1/1995 12:00:00 AM
Firstpage :
959
Lastpage :
968
Abstract :
A program partition scheme for stratified programs introduced by Apt et al. (1988) 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 partition, 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
Keywords :
computational linguistics; database theory; directed graphs; divide and conquer methods; logic programming; program verification; programming theory; query processing; relational databases; computation cost; directed acyclic graph; efficient termination; encapsulation; graph algorithms; graph representations; logic program analysis; logic program computation; modular interpretations; modules; natural partition; partition graph; program partition scheme; programming design; query optimization; reduced partition; relation definitions; semantics; software engineering; stratified partitions; stratified programs; subprogram; Automatic programming; Computational efficiency; Costs; Logic programming; Partitioning algorithms; Query processing; Relational databases; Software engineering; Software maintenance; Writing;
fLanguage :
English
Journal_Title :
Software Engineering, IEEE Transactions on
Publisher :
ieee
ISSN :
0098-5589
Type :
jour
DOI :
10.1109/32.489072
Filename :
489072
Link To Document :
بازگشت