A new external reference management and distributed unification for KL1

This paper describes a new external reference management scheme for KL1, a committed choice logic programming language based on GHC. The significance of the new scheme is that it realizes incremental inter-processor garbage collection. Previous distributed implementations of committed choice languages had not seriously addressed inter-processor garbage collection.Incremental inter-precessor garbage collection is realized by the Weighted Export Counting (WEC). It is a first attempt to use the weighted reference counting technique in logic programming language implementation, and is also new in that it has introduced export and import tables for making independent local garbage collection possible and reducing the number of inter-processor read requests.The problems with exhaustion of reference counts and indirect exportation are discussed. Since the binding order rule adopted in our previous implementation for avoiding creation of reference loops is insufficient in the presence of indirect exportation, a new binding order rule is introduced. We prove that avoidance of reference loops is guaranteed and also prove that the unification procedure always terminates for non-circular structures.

[1]  Ehud Shapiro Systolic Programming: A Paradigm of Parallel Processing , 1984, FGCS.

[2]  Takashi Chikayama,et al.  Lazy Reference Counting: An Incremental Garbage Collection Method for Parallel Inference Machines , 1988, ICLP/SLP.

[3]  D. I. Bevan,et al.  Distributed Garbage Collection Using Reference Counting , 1987, PARLE.

[4]  Stephen Taylor,et al.  A parallel implementation of Flat Concurrent Prolog , 2005, International Journal of Parallel Programming.

[5]  Ehud Shapiro,et al.  A subset of Concurrent Prolog and its interpreter , 1988 .

[6]  Takashi Chikayama,et al.  Multiple Reference Management in Flat GHC , 1987, International Conference on Logic Programming.

[7]  Ian T. Foster,et al.  Parlog as a systems programming language , 1988 .

[8]  Keith L. Clark,et al.  PARLOG: parallel programming in logic , 1986, ACM Trans. Program. Lang. Syst..

[9]  Hiroshi Nakashima,et al.  Hardware Architecture of the Sequential Inference Machine: PSI-II , 1987, SLP.

[10]  K. Ueds,et al.  Guarded horn clauses: A parallel logic programming language with the concept of a guard , 1988 .

[11]  Ian T. Foster,et al.  Parallel Implementation of Parlog , 1988, International Conference on Parallel Processing.

[12]  Paul Watson,et al.  An Efficient Garbage Collection Scheme for Parallel Computer Architectures , 1987, PARLE.

[13]  K. Taki,et al.  The parallel software research and development tool: multi-PSI system , 1988 .

[14]  Hiroshi Nakashima,et al.  An Efficient Termination Detection and Abortion Algorithm for Distributed Processing Systems , 1988, ICPP.