Skip to main content
U.S. Department of Energy
Office of Scientific and Technical Information

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
Country of Publication:
United States
Language:
English

Similar Records

A parallel execution model for Prolog
Book · Wed Dec 31 23:00:00 EST 1986 · OSTI ID:6905723

Parallel execution model for Prolog
Thesis/Dissertation · Wed Dec 31 23:00:00 EST 1986 · OSTI ID:5575569

High-speed CAM-based architecture for a prolog machine (ASCA)
Journal Article · Mon Oct 31 23:00:00 EST 1988 · IEEE Trans. Comput.; (United States) · OSTI ID:6476434