Transformation rules for (Flat) GHC programs are presented, which re ne the previous rules proposed by one of the authors (Furukawa et al. 1987). The rules are based on unfolding/folding and are novel in that they are stated in terms of idempotent substitutions with preferred directions of bindings. They are more general than the old rules in that no mode system is assumed and that the rule of folding is included. The presentation of the rules suggests that idempotent substitutions with preferred directions of bindings are an appropriate tool for modeling information in (concurrent) logic programming. A semantic model is given which associates a multiset of goals with the set of possible nite sequences of transactions (via substitutions) with the multiset. A transformation preserves the set of transaction sequences that are made without the risk of the failure of uni cation. The model also deals with anomalous behavior such as the failure of uni cation and deadlock, so it can be shown with the same model that the transformation cannot introduce those anomalies. Applications of the transformation technique include the fusion of communicating parallel processes. Some familiarity with GHC is assumed.
[1]
Kazunori Ueda,et al.
Guarded Horn Clauses
,
1986,
LP.
[2]
J. Lloyd.
Foundations of Logic Programming
,
1984,
Symbolic Computation.
[3]
K. Ueds,et al.
Guarded horn clauses: A parallel logic programming language with the concept of a guard
,
1988
.
[4]
Michael Codish,et al.
Representation and enumeration of flat Concurrent Prolog computations
,
1988
.
[5]
J. A. Robinson,et al.
Logic, form and function
,
1979
.
[6]
Hisao Tamaki,et al.
Unfold/Fold Transformation of Logic Programs
,
1984,
ICLP.
[7]
Ehud Shapiro,et al.
Concurrent PROLOG: Collected Papers
,
1987
.
[8]
William B. Ackerman,et al.
Scenarios: A Model of Non-Determinate Computation
,
1981,
ICFPC.
[9]
Kazunori Ueda,et al.
Introduction to Guarded Horn Clauses
,
1987
.