Abstract (EN):
Andorra-I is an experimental parallel Prolog system that transparently exploits both dependent and-parallelism and or-parallelism. It constitutes the first implementation of the Basic Andorra model, a parallel execution model for logic programs in which determinate goals are executed before other goals. This model, besides combining two of the most important forms of implicit parallelism in logic programs, also provides a form of implicit coroutining. This means that Andorra-I not only supports standard Prolog but also provides the capabilities of flat committed-choice languages. In this paper, we discuss the preprocessor which enables Andorra-I to support full Prolog, including cut, commit, meta-predicates and side-effect predicates. The main functions of the preprocessor are to perform a mode analysis of the program by abstract interpretation, to use this information to recognize procedures containing pruning operators that are potentially ``noisy'', to protect calls to such ``sensitive'' predicates by restricting certain conjunctions to be executed sequentially, and finally to generate for each predicate a routine which will determine when calls to that predicate become executable through becoming clause determinate.
Language:
English
Type (Professor's evaluation):
Scientific