In this paper we study unfold/fold transormations for constraint logic programs (CLP) with dynamic scheduling and for concurrent constraint programming (CCP). We define suitable applicability conditions for these transformations which guarantee that the original and the transformed program have the same results of successful derivations and the same deadlock free queries. The possible applications of these results are twofold. On one hand we can use the unfold/fold system to optimize CLP and CCP programs while preserving their intended meaning and in particular without the risk of introducing deadlocks. On the other hand, unfold/fold transformations can be used for proving deadlock freeness of a class of queries in a given program: to this aim it is sufficient to apply our transformations and to specialize the resulting program with respect to the given queries in such a way that the obtained program is trivially deadlock free. As shown by several interesting examples, this yields a methodology for proving deadlock freeness which is simple and powerful at the same time.
|Number of pages||14|
|Publication status||Published - Jun 1997|
|Event||Partial evaluation and semantics-based program manipulation (PEPM) - Amsterdam, The Netherlands|
Duration: 1 Jun 1997 → 1 Jun 1997
|Conference||Partial evaluation and semantics-based program manipulation (PEPM)|
|Period||1/06/97 → 1/06/97|