A Shared Dataspace Language and its Compilation
Mauro Gáspari · 1994
We describe an extended version of the parallel rule-based language Shared Prolog. Shared Prolog is based on a shared-dataspace as mean of communication, a set of rewriting rules to support coordination and the use of Prolog to express sequential computations. We address both design and implementation issues. We discuss and compare different approaches to the operational semantics of rules and we propose a new unifying semantics. We introduce an extension to Share Prolog based on the concept of generator and we model the behaviour of the extended language through a formal operational semantics. Finally we describe a compiler for the language and a distributed runtime support on a workstation cluster based on the master-worker model. The runtime support is realised exploiting a multi-language approach: a fair scheduling policy and an indexing technique are implemented in C supporting the execution of data driven rules, which are compiled into Prolog clauses.