# A fine grain parallel implementation of PARLOG

## Abstract

A parallel implementation of PARLOG is described based on graph rewriting techniques. The implementation is suitable for fine grain parallel architectures such as FLAGSHIP and GRIP. In particular, we compile PARLOG programs to Dactl — an intermediate language based on generalised graph rewriting. We provide a complete translation scheme which maps every PARLOG procedure to a set of Dactl rewrite rules where the only selection process is pattern matching. We show how some of the most subtle features of PARLOG such as non-determinism and metaprogramming can be modelled in the graph rewriting framework of Dactl using suitable rule systems. Finally, we show how our Dactl rules can be translated to MONSTR — a subset of Dactl which is currently implemented on FLAGSHIP. This will allow our PARLOG to Dactl implementation to be directly executable by that machine.

## Keywords

Logic Program Parallel Implementation Functional Language Pattern Operator Graph Reduction## References

- [1]
**Banach R.**and**Watson P.**,*Dealing with State on FLAGSHIP: the MONSTR Computational Model*, CONPAR'88, Manchester UK, Sept. 12–16, 1988.Google Scholar - [2]
**Barendregt H. P., Eekelen M. C. J. D., Glauert J. R. W., Kennaway J. R., Plasmeijer M. J.**and**Sleep M. R.**,*Term Graph Rewriting*, PARLE, Eindhoven, The Netherlands, June 15–19, 1987, LNCS 259, Springer Verlag, pp. 141–158.Google Scholar - [3]
**Barendregt H. P., Eekelen M. C. J. D., Glauert J. R. W., Kennaway J. R., Plasmeijer M. J.**and**Sleep M. R.**,*Towards an Intermediate Language Based on Graph Rewriting*, PARLE, Eindhoven, The Netherlands, June 15–19, 1987, LNCS 259, Springer Verlag, pp. 159–175.Google Scholar - [4]
**Brus T. H., van Eekelen M. C. J. D., van Leer M. O.**and**Plasmeijer M. J.**,*Clean: A Language for Functional Graph Rewriting*, FPLCA'87, Oregon, USA, Sept. 14–17, 1987, LNCS 274, Springer Verlag, pp. 364–384.Google Scholar - [5]
**Clark K. L.**and**Foster I. T.**,*A Declarative Environment for Concurrent Logic Programming*, TAPSOFT'87, Pisa Italy, Mar. 1987, LNCS 250, Springer Verlag, pp. 212–242.Google Scholar - [6]
**Fasel J. H.**and**Keller R. M.**(eds),*Graph Reduction Workshop*, Santa Fe, New Mexico, USA, Sept. 29–Oct. 1, 1986, LNCS 279, Springer Verlag.Google Scholar - [7]
**Foster I. T.**,*Logic Operating Systems: Design Issues*, 4th International Conference on Logic Programming, Melbourne, Australia, May 25–29, 1987, pp. 910–926.Google Scholar - [8]
**Glauert J. R. W.**,*An Introduction to Graph Rewriting in Dactl*, Alvey Technical Conference, Swansea UK, July 4–7, 1988, pp. 250–253.Google Scholar - [9]
**Glauert J. R. W., Hammond K., Kennaway J. R.**and**Papadopoulos G. A.**,*Using DACTL to Implement Declarative Languages*, CONPAR'88, Manchester UK, Sept. 12–16, 1988.Google Scholar - [10]
**Glauert J. R. W., Kennaway J. R.**and**Sleep M. R.**,*Dactl: a Computational Model and Compiler Target Language Based on Graph Reduction*, ICL Tecnical Journal, May, 1987, 5(3), pp. 509–537.Google Scholar - [11]
**Glauert J. R. W.**and**Papadopoulos G. A.**,*A Parallel Implementation of GHC*, FGCS'88, Tokyo, Japan, Nov. 28–Dec. 2, 1988, Vol. 3, pp. 1051–1058.Google Scholar - [12]
**DeGroot D.**and**Lindstrom G.**,*Logic Programming: Functions, Relations and Equations*, Prentice Hall, ISBN 0-13-539958-0, 1986.Google Scholar - [13]
**Gregory S.**,*Parallel Logic Programming in PARLOG: the Language and its Implementation*, Addison-Wesley, ISBN 0-201-19241-1, 1987.Google Scholar - [14]
**Hammond K.**and**Papadopoulos G. A.**,*Parallel Implementations of Declarative Languages Based on Graph Reduction*, Alvey Technical Conference, Swansea, UK, July 4–7, 1988, pp. 246–249.Google Scholar - [15]
**Kennaway J. R.**,*Implementing Term Rewrite Languages in Dactl*, CAAP'88, Nancy, France, Mar. 21–24, 1988, LNCS 299, Springer Verlag, pp. 102–116.Google Scholar - [16]
**Kliger S., Yardeni E., Kahn K.**and**Shapiro E.**,*The Language FCP(:,?)*, FGCS'88, Tokyo, Japan, Nov. 28–Dec. 2, 1988, Vol. 2, pp. 763–773.Google Scholar - [17]
**Lam M.**and**Gregory S.**,*PARLOG and ALICE: A Marriage of Convenience*, 4th International Conference on Logic Programming, Melbourne, Australia, May 25–29, 1987, pp. 294–310.Google Scholar - [18]
**Papadopoulos G. A.**,*A High-Level Parallel Implementation of PARLOG*, Internal Report SYSC88-05, University of East Anglia, UK, 1988, (to be revised).Google Scholar - [19]
**Sleep M. R.**and**Kennaway J. R.**,*The Zero Assignment Parallel Processor (ZAPP) Project*, in Distributed Computing Systems Programme, Peter Peregrinous (ed), London 1984, pp. 250–269Google Scholar - [20]
**Thakkar S. S.**(ed),*Selected Reprints on Dataflow and Reduction Architectures*, IEEE, Computer Society Press, ISBN 0-8186-0759-9, 1987.Google Scholar - [21]
- [22]
**Watson I., Woods V., Watson P., Banach R., Greenberg M.**and**Sargeant J.**,*Flagship: A Parallel Architecture for Declarative Programming*, 15th International Symposium on Computer Architecture, IEEE, Honolulu, Hawaii, May 30–June 2, 1988, pp. 124–130.Google Scholar