## A Transformation System for CLP with Dynamic Scheduling and ccp (1997)

### Cached

### Download Links

- [www.cs.ru.nl]
- [www.cs.unimaas.nl]
- [wwwhome.cs.utwente.nl]
- DBLP

### Other Repositories/Bibliography

Venue: | In Proc. of the ACM Sigplan PEPM’97 |

Citations: | 11 - 2 self |

### BibTeX

@INPROCEEDINGS{Etalle97atransformation,

author = {Sandro Etalle and Maurizio Gabbrielli and Elena Marchiori},

title = {A Transformation System for CLP with Dynamic Scheduling and ccp},

booktitle = {In Proc. of the ACM Sigplan PEPM’97},

year = {1997},

pages = {137--150},

publisher = {ACM Press}

}

### OpenURL

### Abstract

In this paper we study unfold/fold transformations for constraint logic programs (CLP) with dynamic scheduling and for concurrent constraint programming (ccp). We define suitable applicability conditions for this transformations which ensure us that the original and the transformed program have the same results of successful computations and have the same deadlocked derivations. 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 freedom for a class of queries in a given program: to this aim it is sufficient to specialize the program with respect to the given queries in such a way that the resulting program is trivially deadlock free. As shown by several interesting examples, this yields a methodology for proving deadlock free...

### Citations

786 | Constraint logic programming
- Jaffar, Lassez
- 1987
(Show Context)
Citation Context ...he Appendix some more details concerning the computational model of this language. For a thorough treatment of the theory of constraint logic programming, the reader is referred to the original paper =-=[17]-=- by Jaffar and Lassez and to the survey [18] by Jaffar and Maher. A constraint c is a (first-order) formula built using predefined predicates (called primitive constraints) over a computational domain... |

769 | Constraint Logic Programming: A Survey
- Jaffar, Maher
- 1994
(Show Context)
Citation Context ...he power of constraint solving with logical deduction. In this way complex practical problems can be tackled by using (reasonably) simple and concise programs. In nearly all the practical CLP systems =-=[18]-=- the flexibility of CLP computation is further enhanced by allowing a dynamic selection rule which allows to dynamically delay (or suspend) the selection of an atom until its arguments are sufficientl... |

571 | A Transformation System for Developing Recursive Programs
- Burstall, Darlington
- 1977
(Show Context)
Citation Context ...ese techniques provide a powerful methodology for program development, synthesis and optimization. Historically, the unfold/fold transformation rules, were first introduced for functional programs in =-=[3]-=-, and then adapted to logic programs both for program synthesis [5, 16], and for program specialization and optimization [19]. Soon later, Tamaki and Sato [29] proposed an elegant framework for the un... |

436 | Concurrent Constraint Programming
- Saraswat, Rinard
- 1990
(Show Context)
Citation Context ...example. Both CLP and ccp frameworks are defined parametrically wrt to some notion of constraint system. Usually a more abstract view is followed in ccp by formalizing the notion of constraint system =-=[28]-=- along the guidelines of Scott's treatment of information systems. Here, for the sake of uniformity, we will assume that also in ccp constraints are first order formulae as previously defined. The bas... |

384 |
Incremental constraint satisfaction in logic programming
- Hentenryck
- 1989
(Show Context)
Citation Context ... is a powerful declarative programming paradigm which has been successfully applied to several diverse fields such as financial analysis [21], circuit synthesis [15] and combinatorial search problems =-=[31]-=-. The main reason for the interest in this paradigm is that it combines in a clean and effective way the power of constraint solving with logical deduction. In this way complex practical problems can ... |

303 |
The CLP(R) language and system
- Jaffar, Michaylow, et al.
- 1992
(Show Context)
Citation Context ...s, to prevent run-time errors and to enforce termination. In many CLP systems they are used also to postpone the evaluation of constraints which are “too hard” for the solver. For example, in CLP(!R) =-=[18]-=- non-linear arithmetic constraints are delayed until they become linear. More generally, delay declarations provide the programmer with a better control over the computation and, similarly to guards i... |

252 | Semantic Foundations of Concurrent Constraint Programming
- Saraswat, Rinard, et al.
- 1991
(Show Context)
Citation Context ...ess, in the field of concurrent programming, there exist more expressive languages which allow for more sophisticated synchronization mechanisms. In particular concurrent constraint programming (ccp) =-=[27]-=- can be considered the natural extension of CLP. In fact, in [8] it has been shown that CLP with dynamic scheduling can be embedded into a strict sublanguage of ccp. Such an increased expressive power... |

213 |
Unfold/fold transformations of logic programs
- Tamaki, Sato
- 1984
(Show Context)
Citation Context ...rst introduced for functional programs in [3], and then adapted to logic programs both for program synthesis [5, 16], and for program specialization and optimization [19]. Soon later, Tamaki and Sato =-=[29]-=- proposed an elegant framework for the unfold/fold transformation of logic programs which has recently been extended to CLP in [2, 22, 13] (for an overview of the subject, see the survey by Pettorossi... |

139 | Transformation of logic programs: Foundations and techniques
- Pettorossi, Proietti
- 1994
(Show Context)
Citation Context ...legant framework for the unfold/fold transformation of logic programs which has recently been extended to CLP in [2, 22, 13] (for an overview of the subject, see the survey by Pettorossi and Proietti =-=[26]-=-). However, these systems cannot be applied as they are to languages with dynamic scheduling. This is due to the following reasons. First, as we have already mentioned, a peculiar feature of such lang... |

122 |
Introduction to Logic Programming
- Hogger
- 1984
(Show Context)
Citation Context ...nt, synthesis and optimization. Historically, the unfold/fold transformation rules, were first introduced for functional programs in [3], and then adapted to logic programs both for program synthesis =-=[5, 16]-=-, and for program specialization and optimization [19]. Soon later, Tamaki and Sato [29] proposed an elegant framework for the unfold/fold transformation of logic programs which has recently been exte... |

54 |
Partial evaluation as a means for inferencing data structures in an applicative language: A theory and implementation in the case of prolog
- Komorowski
- 1982
(Show Context)
Citation Context ...fold transformation rules, were first introduced for functional programs in [3], and then adapted to logic programs both for program synthesis [5, 16], and for program specialization and optimization =-=[19]-=-. Soon later, Tamaki and Sato [29] proposed an elegant framework for the unfold/fold transformation of logic programs which has recently been extended to CLP in [2, 22, 13] (for an overview of the sub... |

37 | Transformations of CLP modules
- Etalle, Gabbrielli
- 1996
(Show Context)
Citation Context ...am specialization and optimization [19]. Soon later, Tamaki and Sato [29] proposed an elegant framework for the unfold/fold transformation of logic programs which has recently been extended to CLP in =-=[2, 22, 13]-=- (for an overview of the subject, see the survey by Pettorossi and Proietti [26]). However, these systems cannot be applied as they are to languages with dynamic scheduling. This is due to the followi... |

36 | Analyzing Logic Programs with Dynamic Scheduling
- Marriott, Banda, et al.
- 1994
(Show Context)
Citation Context ...to two main branches. On one hand, we find several methods for compile-time optimization based on abstract interpretation. These methods have been recently applied also to CLP with dynamic scheduling =-=[10, 24, 9]-=- with promising results. On the other hand, there are techniques based on transformation of programs such as unfold/fold and replacement. As shown by several applications, these techniques provide a p... |

35 | CLP(%2) and some electrical engineering problems
- Heintze, Michaylov, et al.
- 1987
(Show Context)
Citation Context ...raint Logic Programming (CLP for short) is a powerful declarative programming paradigm which has been successfully applied to several diverse fields such as financial analysis [21], circuit synthesis =-=[15]-=- and combinatorial search problems [31]. The main reason for the interest in this paradigm is that it combines in a clean and effective way the power of constraint solving with logical deduction. In t... |

34 |
Abstract Interpretation for Concurrent Logic Languages
- Codognet, Codognet, et al.
- 1990
(Show Context)
Citation Context ...eadlock is an undecidable yet crucial problem. In order to give it a (partial) solution, several techniques have been employed. Among them we should mention those based on abstract interpretation (in =-=[6, 7]-=-), mode and type analysis (in [1, 12]) and assertions (in [23, 4]). A central issue for the development of large, correct and efficient applications is the study of optimization techniques. When consi... |

32 | Verification of logic programs with delay declarations
- Apt, Luitjes
- 1995
(Show Context)
Citation Context ...l problem. In order to give it a (partial) solution, several techniques have been employed. Among them we should mention those based on abstract interpretation (in [6, 7]), mode and type analysis (in =-=[1, 12]-=-) and assertions (in [23, 4]). A central issue for the development of large, correct and efficient applications is the study of optimization techniques. When considering (constraint) logic programs, t... |

26 | Transforming constraint logic programs - Bensaou, Guessarian - 1998 |

24 |
Predicate Logic: A Calculus for Deriving Programs
- Clark, Sickel
- 1977
(Show Context)
Citation Context ...nt, synthesis and optimization. Historically, the unfold/fold transformation rules, were first introduced for functional programs in [3], and then adapted to logic programs both for program synthesis =-=[5, 16]-=-, and for program specialization and optimization [19]. Soon later, Tamaki and Sato [29] proposed an elegant framework for the unfold/fold transformation of logic programs which has recently been exte... |

24 | Suspension Analyses for Concurrent Logic Programs
- Codish, Falaschi, et al.
- 1994
(Show Context)
Citation Context ...eadlock is an undecidable yet crucial problem. In order to give it a (partial) solution, several techniques have been employed. Among them we should mention those based on abstract interpretation (in =-=[6, 7]-=-), mode and type analysis (in [1, 12]) and assertions (in [23, 4]). A central issue for the development of large, correct and efficient applications is the study of optimization techniques. When consi... |

24 |
An introduction to mu-prolog
- Naish
- 1982
(Show Context)
Citation Context ...s obtained by adding the so-called delay declarations next to program clauses. Delay declarations, advocated by van Emden and de Lucena [30] and introduced explicitly in logic programming by Naish in =-=[25], all-=-ow to improve the efficiency of programs, to prevent run-time errors and to enforce termination. In many CLP systems they are used also to postpone the evaluation of constraints which are "too ha... |

19 |
Composing Recursive Logic Programs with Clausal Join
- Lakhotia, Sterling
(Show Context)
Citation Context ...ia an unfold/fold transformation we can obtain an equivalent program which scans the list only once. For this we apply a transformation strategy known as tupling (cf. [26]) or as procedural join (cf. =-=[20]-=-). First, we add to the program a new predicate. %%%% find max and del(InList,Max,El,OutList) / Max is the maximum element of the list InList %%%% and OutList is obtained from Inlist by deleting all t... |

15 | Detection and optimization of suspension-free logic programs
- Debray, Gudemann, et al.
- 1994
(Show Context)
Citation Context ...to two main branches. On one hand, we find several methods for compile-time optimization based on abstract interpretation. These methods have been recently applied also to CLP with dynamic scheduling =-=[10, 24, 9]-=- with promising results. On the other hand, there are techniques based on transformation of programs such as unfold/fold and replacement. As shown by several applications, these techniques provide a p... |

13 |
Constraint Logic Programming and Option Trading
- Lassez, McAloon, et al.
- 1987
(Show Context)
Citation Context ...ck. 1 Introduction Constraint Logic Programming (CLP for short) is a powerful declarative programming paradigm which has been successfully applied to several diverse fields such as financial analysis =-=[21]-=-, circuit synthesis [15] and combinatorial search problems [31]. The main reason for the interest in this paradigm is that it combines in a clean and effective way the power of constraint solving with... |

12 | Proving termination of logic programs with delay declarations
- Marchiori, Teusink
- 1995
(Show Context)
Citation Context ...it a (partial) solution, several techniques have been employed. Among them we should mention those based on abstract interpretation (in [6, 7]), mode and type analysis (in [1, 12]) and assertions (in =-=[23, 4]-=-). A central issue for the development of large, correct and efficient applications is the study of optimization techniques. When considering (constraint) logic programs, the literature on this subjec... |

11 |
Predicate logic as a language for parallel programming
- Emden, Lucena
- 1982
(Show Context)
Citation Context ...guments are sufficiently instantiated. This dynamic scheduling is obtained by adding the so-called delay declarations next to program clauses. Delay declarations, advocated by van Emden and de Lucena =-=[30]-=- and introduced explicitly in logic programming by Naish in [25], allow to improve the efficiency of programs, to prevent run-time errors and to enforce termination. In many CLP systems they are used ... |

10 |
A transformation system for deductive databases with perfect model semantics
- Maher
- 1993
(Show Context)
Citation Context ...am specialization and optimization [19]. Soon later, Tamaki and Sato [29] proposed an elegant framework for the unfold/fold transformation of logic programs which has recently been extended to CLP in =-=[2, 22, 13]-=- (for an overview of the subject, see the survey by Pettorossi and Proietti [26]). However, these systems cannot be applied as they are to languages with dynamic scheduling. This is due to the followi... |

9 | Layered modes
- Etalle, Gabbrielli
- 1996
(Show Context)
Citation Context ...l problem. In order to give it a (partial) solution, several techniques have been employed. Among them we should mention those based on abstract interpretation (in [6, 7]), mode and type analysis (in =-=[1, 12]-=-) and assertions (in [23, 4]). A central issue for the development of large, correct and efficient applications is the study of optimization techniques. When considering (constraint) logic programs, t... |

8 | Efficient analysis of logic programs with dynamic scheduling
- Banrla, Marriott, et al.
- 1995
(Show Context)
Citation Context ...to two main branches. On one hand, we find several methods for compile-time optimization based on abstract interpretation. These methods have been recently applied also to CLP with dynamic scheduling =-=[10, 24, 9]-=- with promising results. On the other hand, there are techniques based on transformation of programs such as unfold/fold and replacement. As shown by several applications, these techniques provide a p... |

8 | A CLP view of Logic Programming
- Maher
- 1992
(Show Context)
Citation Context ...ormula obtained from @by replacing the variables ~ for the variables ~. 3The notion of groundless here considered is the generalization to CLP of the notion of groundless used in LP, as shown e.g. in =-=[23]-=- (there called determinateness), such that B is a non-empty sequence of atoms, and each atom in 6 does not satisfy its delay declaration. Note that B does not contain constraints: In fact, usually the... |

7 | Proving Correctness of Constraint Logic Programs with Dynamic Scheduling
- Boer, Gabbrielli, et al.
- 1996
(Show Context)
Citation Context ...ressive languages which allow for more sophisticated synchronization mechanisms. In particular concurrent constraint programming (ccp) [27] can be considered the natural extension of CLP. In fact, in =-=[8]-=- it has been shown that CLP with dynamic scheduling can be embedded into a strict sublanguage of ccp. Such an increased expressive power allow us to define a more flexible transformation system. As an... |

4 | The Replacement Operation for CLP modules
- Etalle, Gabbrielli
- 1995
(Show Context)
Citation Context ...ed in this paper should provide the basis to develop a more general transformation system for CLP with dynamic scheduling and ccp. In particular, we are now investigating how to extend the results in =-=[11] to these -=-languages in order to obtain also a "replacement" transformation. Related Papers. To the best of our knowledge transformations for these languages were not been studied yet. More generally, ... |

4 | Unfold/fold transformation of concurrent processes
- Francesco, Santone
- 1996
(Show Context)
Citation Context ... To the best of our knowledge transformations for these languages were not been studied yet. More generally, the only other existing work which apply unfold/fold techniques in a concurrent setting is =-=[14]-=-, where De Francesco and Santone investigate transformations of CCS programs. The results in [14] are rather different from ours, since they define an applicability condition for the folding operation... |

2 |
Proof method for safety properties of Clausal Concurrent Constraint Programs. Post conference workshop of JICSLP'96
- Chambre, Deransart, et al.
- 1996
(Show Context)
Citation Context ...it a (partial) solution, several techniques have been employed. Among them we should mention those based on abstract interpretation (in [6, 7]), mode and type analysis (in [1, 12]) and assertions (in =-=[23, 4]-=-). A central issue for the development of large, correct and efficient applications is the study of optimization techniques. When considering (constraint) logic programs, the literature on this subjec... |

1 |
Partial evaluation aa a means for inferencing data structures in an applicative language: A theory and implementation in the case of Prolog
- Komorowski
- 1982
(Show Context)
Citation Context ...fold transformation rules, were first introduced for functional programs in [3], and then adapted to logic programs both for program synthesis [5, 16], and for program specialization and optimization =-=[20]-=-. Soon after, Tamaki and Sato \32] proposed an elegant framework for the unfold/fold transformation of logic programs which has recently been extended to CLP in [2, 24, 13] (for an overview of the sub... |