page 1  (10 pages)
2to next section

PROLOG-LINDA :
AN EMBEDDING OF LINDA IN muPROLOG

GEOFF SUTCLIFFE
Department of Computer Science,The University of Western Australia,
Nedlands, 6009, Western Australia

and

JAMES PINAKIS
Department of Computer Science,The University of Western Australia,
Nedlands, 6009, Western Australia

ABSTRACT
This paper presents an embedding of the Linda parallel programming paradigm in Prolog. A mono-processor and a multi-processor implementation are described. Both implementations provide coarse grain parallelism to Prolog. The embedding of Linda in Prolog extends Linda's standard tuple space operations, permitting unification and Prolog style deduction in the tuple space. Examples of the added capabilities introduced by a deductive tuple space, as well as example applications of Prolog-Linda as a whole, are given.

1 Introduction

The Linda programming paradigm?[1] developed by David Gelernter has recently attracted much interest as a method of enabling communication between, and synchronization of, parallel processes. A recent paper?[2] compared this paradigm with other approaches to parallelism, specifically with the concurrent logic programming language Parlog86?[3]. Subsequent discussion?[4] compared Linda with the FCP family of languages?[5]. In Gelernter's reply to this discussion, he noted that "a Linda based parallel Prolog is a potentially more elegant, expressive and efficient alternative to the concurrent logic programming languages."

This paper presents an embedding of the Linda paradigm in Prolog, called Prolog-Linda. Prolog-Linda extends the standard tuple space operations, permitting unification and Prolog style deduction in the tuple space. Two implementations of Prolog-Linda are described, the first on a single processor, the second on a network of processors connected via an Ethernet. The parallelism introduced by these implementations is very coarse, in that each process is a seperate Prolog interpreter. Some applications of this parallelism are discussed.

The reader is presumed to be familiar with Prolog.

2 The Linda paradigm

Linda is a programming framework of language-independent operators. These operators may be injected into the syntax of existing programming languages, such as C?[6], Modula-II?[7], LISP?[8] and