## Unfold/Fold Transformations of Concurrent Processes (1996)

Venue: | Proc. 8th Int'l Symp. on Programming Languages: Implementations, Logics and Programs |

Citations: | 4 - 0 self |

### BibTeX

@INPROCEEDINGS{Francesco96unfold/foldtransformations,

author = {Nicoletta De Francesco and Antonella Santone},

title = {Unfold/Fold Transformations of Concurrent Processes},

booktitle = {Proc. 8th Int'l Symp. on Programming Languages: Implementations, Logics and Programs},

year = {1996},

pages = {167--181},

publisher = {Springer-Verlag}

}

### OpenURL

### Abstract

Program transformation is a technique for obtaining, starting from a program P, a semantically equivalent one, which is "better" than P with respect to a particular goal. Traditionally, the main goal of program transformation was obtaining more efficient programs, but, in general, this technique can be used to produce programs written in a syntactic form satisfying some properties. Program transformation techniques have been extensively studied in the framework of functional and logic languages, where they were applied mainly to obtain more efficient and readable programs. All these works are based on the Unfold/Fold program transformation method developed by Burstall and Darlington in the context of their recursive equational language. The use of Unfold /Fold based transformations for concurrent languages is a relevant issue that has not yet received an adequate attention. In fact the existing proposals of transformations of concurrent programs are not based on a general Unfold/Fold transformation theory. The aim of this paper is to define such a theory for the concurrent calculus CCS and to prove it correct. 1

### Citations

3383 |
Communication and Concurrency
- Milner
- 1989
(Show Context)
Citation Context ...ions of concurrent programs (see, for example, [20, 29]) are not based on a general Unfold/Fold transformation theory. The aim of this paper is to define such a theory for the concurrent calculus CCS =-=[22]-=- and to prove it correct. A CCS program is a set of mutually recursive definitions that can be manipulated by syntactic transformations to obtain a semantically equivalent program in which a particula... |

595 | A Transformation System for Developing Recursive Programs
- Burstall, Darlington
- 1977
(Show Context)
Citation Context ... be used to produce programs written in a syntactic form satisfying some properties. Program transformation techniques have been extensively studied in the framework of functional and logic languages =-=[5, 9, 19, 24, 25, 26]-=-, where they were applied mainly to obtain more efficient and readable programs. All these works are based on the Unfold/Fold program transformation method developed by Burstall and Darlington [5] in ... |

222 |
Unfold/fold transformation of logic programs
- Tamaki, Sato
- 1984
(Show Context)
Citation Context ...actically evident. In this paper we define a set of transformation rules for CCS. These are a specialization of classical program transformation rules, such as Folding and Unfolding. It is well known =-=[27]-=- that, while Unfolding preserves program equivalence, its inverse, i.e. Folding, when used without restriction, can cause loss of information. The study of conditions to ensure folding safeness is a m... |

192 |
CCS expressions, finite state processes and three problems of equivalence
- Kannelakis, Smolka
- 1983
(Show Context)
Citation Context ... on an internal finite state representation of the processes, allowing the verification of logical properties and the application of efficient algorithms to decide whether two processes are bisimilar =-=[2, 16, 17]-=-. Consider the program: P 0 : h x def = a:b:xnfcg + c:x; y def = b:y; z def = d:(x j y)nfbg; zi Note that SOS(P 0 ) is infinite. We unfold the definition of the constant z using the definitions of x a... |

140 | Transformation of logic programs: Foundations and techniques
- Pettorossi, Proietti
- 1994
(Show Context)
Citation Context ... be used to produce programs written in a syntactic form satisfying some properties. Program transformation techniques have been extensively studied in the framework of functional and logic languages =-=[5, 9, 19, 24, 25, 26]-=-, where they were applied mainly to obtain more efficient and readable programs. All these works are based on the Unfold/Fold program transformation method developed by Burstall and Darlington [5] in ... |

64 | An efficient algorithm for branching bisimulation and stuttering equivalence
- Groote, Vaandrager
- 1990
(Show Context)
Citation Context ... on an internal finite state representation of the processes, allowing the verification of logical properties and the application of efficient algorithms to decide whether two processes are bisimilar =-=[2, 16, 17]-=-. Consider the program: P 0 : h x def = a:b:xnfcg + c:x; y def = b:y; z def = d:(x j y)nfbg; zi Note that SOS(P 0 ) is infinite. We unfold the definition of the constant z using the definitions of x a... |

41 | The integration Project for the JACK Environment
- Bouali, Gnesi, et al.
- 1994
(Show Context)
Citation Context ...program in which the "growing" operators, such as parallel composition and restriction, do not occur. If the transformation succeeds, it becomes feasible to use the existing verification env=-=ironments [1, 4, 7, 8, 13, 14]-=-, which are based on an internal finite state representation of the program. Moreover, the transformation process can be seen as a way to prove finiteness of CCS programs. As a second example, we show... |

41 |
Unfold/fold transformations of logic programs
- Gardner, Shepherdson
- 1991
(Show Context)
Citation Context ...s is partitioned into "old" and "new" ones, and unrestricted folding is allowed only for old definitions, while it is constrained when applied to the new ones. Subsequent proposals=-= (see, for example, [15, 23]-=-), were devoted to find weaker conditions for the application of folding, still maintaining its safeness. In this paper we introduce an elegant safe folding rule for CCS, based on a well-known process... |

41 |
Finite Representations of CCS and TCSP Programs by Automata and Petri Nets
- Taubner
- 1989
(Show Context)
Citation Context ...fined a strategy, i.e an algorithm specifying the order of application of the rules, which is proved to be more powerful than many existing methods for building finite representations of CCS programs =-=[10, 21, 28]-=- (not based on program transformation). The strategy cannot be used as a decision procedure for the finiteness of CCS programs, since this problem is undecidable. 4.1 Proving bisimulation equivalence ... |

36 |
Fundamental Results for the Verification of Observational Equivalence
- Bolognesi, Smolka
- 1987
(Show Context)
Citation Context ... on an internal finite state representation of the processes, allowing the verification of logical properties and the application of efficient algorithms to decide whether two processes are bisimilar =-=[2, 16, 17]-=-. Consider the program: P 0 : h x def = a:b:xnfcg + c:x; y def = b:y; z def = d:(x j y)nfbg; zi Note that SOS(P 0 ) is infinite. We unfold the definition of the constant z using the definitions of x a... |

31 |
Aboard auto
- Simone, Vergamini
- 1989
(Show Context)
Citation Context ...program in which the "growing" operators, such as parallel composition and restriction, do not occur. If the transformation succeeds, it becomes feasible to use the existing verification env=-=ironments [1, 4, 7, 8, 13, 14]-=-, which are based on an internal finite state representation of the program. Moreover, the transformation process can be seen as a way to prove finiteness of CCS programs. As a second example, we show... |

30 |
Preservation of Stronger Equivalence in Unfold/Fold Logic Program Transformation
- KAWAMURA, KANAMORI
- 1988
(Show Context)
Citation Context ...ing folding only for old definitions and imposing restrictions on the new ones: essentially, a new definition can be folded only if it has been unfolded at least once. Other proposals can be found in =-=[3, 15, 18, 23]-=-. For CCS we propose the following safe folding rule, which simply allows folding only for weakly guarded sub-terms. Guarded-Folding. Let P k = hD; pi be a program and let D 2 D be the constant defini... |

27 |
Basic transformation operations which preserve computed answer substitutions of logic programs
- Bossi, Cocco
- 1993
(Show Context)
Citation Context ...ing folding only for old definitions and imposing restrictions on the new ones: essentially, a new definition can be folded only if it has been unfolded at least once. Other proposals can be found in =-=[3, 15, 18, 23]-=-. For CCS we propose the following safe folding rule, which simply allows folding only for weakly guarded sub-terms. Guarded-Folding. Let P k = hD; pi be a program and let D 2 D be the constant defini... |

25 | Unfold/fold transformations and loop optimization of logic programs
- Debray
- 1988
(Show Context)
Citation Context ... be used to produce programs written in a syntactic form satisfying some properties. Program transformation techniques have been extensively studied in the framework of functional and logic languages =-=[5, 9, 19, 24, 25, 26]-=-, where they were applied mainly to obtain more efficient and readable programs. All these works are based on the Unfold/Fold program transformation method developed by Burstall and Darlington [5] in ... |

24 | The loop absorption and the generalization strategies for the development of logic programs and partial deduction. The - Proietti, Pettorossi - 1993 |

22 |
Bisimulation is decidable for all basic parallel processes
- Christensen, Hirshfeld, et al.
- 1993
(Show Context)
Citation Context ...n be seen as a way to prove finiteness of CCS programs. As a second example, we show how it is possible to prove the equivalence between two BPP programs by transforming one into the other, where BPP =-=[6]-=- is a subset of CCS for which equivalence is decidable. Thus, our transformational approach can be seen as unifying in a common framework a set of different techniques of program analysis. This paper ... |

16 |
About Transformation System: A Theoretical Study”, 3ème Colloque International sur la Programmation
- Kott
- 1978
(Show Context)
Citation Context |

11 |
Finiteness conditions and structural construction of automata for all process algebras
- Madelaine, Vergamini
- 1990
(Show Context)
Citation Context ...fined a strategy, i.e an algorithm specifying the order of application of the rules, which is proved to be more powerful than many existing methods for building finite representations of CCS programs =-=[10, 21, 28]-=- (not based on program transformation). The strategy cannot be used as a decision procedure for the finiteness of CCS programs, since this problem is undecidable. 4.1 Proving bisimulation equivalence ... |

10 |
The Concurrency Workbench: Operating Instructions
- Cleaveland, Parrow, et al.
- 1988
(Show Context)
Citation Context ...program in which the "growing" operators, such as parallel composition and restriction, do not occur. If the transformation succeeds, it becomes feasible to use the existing verification env=-=ironments [1, 4, 7, 8, 13, 14]-=-, which are based on an internal finite state representation of the program. Moreover, the transformation process can be seen as a way to prove finiteness of CCS programs. As a second example, we show... |

10 |
Rules and Strategies for Program Transformation
- Pettorossi, Proietti
- 1993
(Show Context)
Citation Context |

8 | Affinity between Meta-Interpreters and Partial Evaluation - Takeuchi - 1986 |

5 |
SQUIGGLES: A tool for the analysis of LOTOS specifications
- Bolognesi, Caneve
- 1989
(Show Context)
Citation Context |

4 |
Proving Finiteness of CCS Processes by Non-standard Semantics
- Francesco, Inverardi
- 1994
(Show Context)
Citation Context ...fined a strategy, i.e an algorithm specifying the order of application of the rules, which is proved to be more powerful than many existing methods for building finite representations of CCS programs =-=[10, 21, 28]-=- (not based on program transformation). The strategy cannot be used as a decision procedure for the finiteness of CCS programs, since this problem is undecidable. 4.1 Proving bisimulation equivalence ... |

4 |
Un system de verification par reduction de processus communicantes
- Aldebaran
- 1988
(Show Context)
Citation Context |

2 |
Model Checking and Abstraction. The Concurrency Workbench. Proceedings of Automatic Verification Methods for Finite State Systems
- Cleaveland, Parrow, et al.
- 1990
(Show Context)
Citation Context |

2 |
The PSF toolkit. Computer Networks and ISDN
- Veltink
- 1993
(Show Context)
Citation Context ...ansformations for concurrent languages is a relevant issue that has not yet received an adequate attention. In fact the existing proposals of transformations of concurrent programs (see, for example, =-=[20, 29]-=-) are not based on a general Unfold/Fold transformation theory. The aim of this paper is to define such a theory for the concurrent calculus CCS [22] and to prove it correct. A CCS program is a set of... |

1 | A Program Transformations Methodology for CCS
- Francesco, Santone
- 1995
(Show Context)
Citation Context ... are not reachable from z, obtaining the final program, in which parallel composition, restriction and relabelling do not occur: P 16 : h z def = d:(a:u + w); u def = :a:u; w def = c:(a:u + w); zi In =-=[11]-=- we have defined a strategy, i.e an algorithm specifying the order of application of the rules, which is proved to be more powerful than many existing methods for building finite representations of CC... |

1 |
Transforming Concurrent Processes. Internal Report IR-2/94, Dipartimento di Ingegneria dell'Informazione
- Francesco, Santone
(Show Context)
Citation Context ...t all known folding rules for functional and logic programming. We are actually defining strategies, i.e. algorithms defining an order of application of the rules, with different transformation goals =-=[12]-=-. In [20] program transformation rules are defined for the LOTOS concurrent specification language, with the aim of supporting program design. This approach differs from our methodology, since we are ... |