skip to main content
OSTI.GOV title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: High performance execution of Prolog programs based on a Static Data Dependency Analysis

Thesis/Dissertation ·
OSTI ID:7011409

Prolog programs are executed from left-to-right and top-to-bottom with backtracking to the most recently activated choice-point when a failure occurs. This execution strategy is based on a sequential execution model and has been implemented with most efficiency in conventional computer systems. In this thesis, two ways are explored to improve the performance of a Prolog system. The first way is a more intelligent form of backtracking. The second way is to exploit AND-parallel execution. Both intelligent backtracking and AND-parallel execution require information about the dependency between body literals. This information can be derived either at compile time by using a static analysis or at run-time. A methodology for a Static Data Dependency Analysis (SDDA) was developed. The SDDA is based on a worst-case analysis of variable bindings. To perform the SDDA, only one declaration, which describes the worst-case activation, is necessary for each procedure which can be directly invoked from the top level query. A scheme for compiling intelligent backtracking based on the SDDA was designed. To take full advantage of dependency graphs, three different types of backtracking are differentiated. A scheme to exploit AND-parallelism is also proposed. It includes generating parallel executable tasks by the SDDA, using a set of message protocols to coordinate co-operating processes, exploiting both intelligent backtracking and parallel backtracking.

Research Organization:
California Univ., Berkeley (USA)
OSTI ID:
7011409
Resource Relation:
Other Information: Thesis (Ph. D.)
Country of Publication:
United States
Language:
English

Similar Records

Parallel execution model for Prolog
Thesis/Dissertation · Thu Jan 01 00:00:00 EST 1987 · OSTI ID:7011409

A parallel execution model for Prolog
Book · Thu Jan 01 00:00:00 EST 1987 · OSTI ID:7011409

A join algorithm for combining AND parallel solutions in AND/OR parallel systems
Journal Article · Sat Feb 01 00:00:00 EST 1992 · International Journal of Parallel Programming; (United States) · OSTI ID:7011409