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.
This work has been partially funded by Progetto Coordinato CNR ANATRA.
Preview
Unable to display preview. Download preview PDF.
References
T. Bolognesi, M. Caneve. A tool for the analysis of Lotos specifications. In K. Turner (ed.) Formal description techniques, pp. 201–216. Amsterdam: North-Holland 1989.
T. Bolognesi, S. Smolka. Fundamental results for the verification of observational equivalence: a survey. In Proc. IFIP WG 6.1 7th Conference on Protocol Specification, Testing and Verification. Amsterdam: North-Holland 1987.
A. Bossi and N. Cosso. Basic Transformation operations which preserve Computer Answer Substitutions of Logic Programs. Bulletin of the EATCS, n.54, October 1994, pp.207–223.
A. Bouali, S. Gnesi, S. Larosa. The integration Project for the JACK Environment. Bulletin of the EATCS, n.54, October 1994, pp.207–223.
R.M. Burstall, J. Darlington. A Transformation System for Developing Recursive Programs. J. ACM 24(1): pp. 44–67 (1977).
S. Christensen, Y. Hirshfeld and F. Moller. Bisimulation is Decidable for all Basic Parallel Processes. In Proceedings of CONCUR'93, number 715 in Lecture Notes in Computer Science, pp. 143–157. Springer-Verlag, 1993.
R. Cleaveland, J. Parrow, B. Steffen. The concurrency workbench: operating instructions. Tech. Notes Sussex University, 1988.
R. Cleaveland, J. Parrow, B. Steffen. Model Checking and Abstraction. The Concurrency Workbench. Proceedings of Automatic Verification Methods for Finite State Systems. Lecture Notes in Computer Science 407, Springer-Verlag, 1990, pp. 24–37.
S.K. Debray. Unfold/Fold Transformations and Loop Optimization of Logic Programs. In Proceedings of SIGPLAN '88, Conference on Programming Language Design and Implementation. Atlanta, Georgia, SIGPLAN Not. 23(7): pp. 297–307 (1988).
N. De Francesco, P. Inverardi. Proving Finiteness of CCS Processes by Nonstandard Semantics. Acta informatica, vol.31, n.1, 1994, pp. 55–80.
N. De Francesco, A. Santone. A Program Transformations Methodology for CCS. In Proceedings of the Fifth Italian Conference of Theoretical Computer Science, Ravello, Italy, November 1995.
N. De Francesco, A. Santone. Transforming Concurrent Processes. Internal Report IR-2/94, Dipartimento di Ingegneria dell'Informazione, Univ. of Pisa.
R. De Simone, D. Vergamini. Aboard AUTO. INRIA Technical Report 111, 1989.
J. Fernandez.: Aldebaran. Un system de verification par reduction de processus communicantes. Ph.D. Thesis, Université de Grenoble, 1988.
P.A. Gardner and J.C. Shepherdson. Unfold/Fold Transformations of Logic Programs, in Computational Proofs: Essays in honour of G. Robinson (1991).
J.F. Groote, F.W. Vaandrager. An efficient algorithm for branching bisimulation and stuttering equivalence. In M. S. Paterson (ed.) Automata, languages and programming. Proceedings (Lect. Notes Comput. Sci., vol 443, pp. 626–638) Berlin, Heildelberg, New York: Springer 1990.
P.C. Kanellakis, S.A. Smolka. CCS Expressions, finite state processes and three problems of equivalence. Inf. Comput. 86 (1990).
T. Kawamura and T. Kanamori. Preservation of stronger equivalence in unfold/fold logic program transformation. In Theoretical Computer Science, vol. 75, pp. 139–156 (1990).
L. Kott. About Transformation System. A Theoretical Study, 3ème Colloque International sur la Programmation, Dunod, Paris, 1978, pp. 232–247.
Catalogue of LOTOS Correctness Preserving Transformations. ESPIT Project, Final Deliverable, April 1992.
E. Madelaine, D. Vergamini. Finiteness conditions and structural construction of automata for all process algebras. In Proceedings, 2nd Workshop on ComputerAided Verification. DIMACS Technical report 90-31, June 1990.
R. Milner. Communication and Concurrency. Prentice-Hall, 1989.
A. Pettorossi, M. Proietti. The Loop Absorption and The Generalization Strategies for the Development of Logic Programs and Partial Deduction. Journal of Logic Programming 1993, 16, pp. 123–161.
A. Pettorossi, M. Proietti. Rules and Strategies for Program Transformation. In State-of-the-Art. Report on Formal Program Development, Rio de Janeiro, Brazil. Lecture Notes in Computer Science 755, Springer, New York, 1993, pp. 263–304.
A. Pettorossi, M. Proietti. Transformation of Logic Programs: Foundations and Techniques. In J. Logic Programming 1994, 19, 20: pp.261–320.
A. Takeuchi. Affinity between Meta Interpreters and Partial Evaluation. In H.J. Kugler (ed.), Proceedings of Information Processing '86. North-Holland, Amsterdam, 1986, pp. 279–282.
H. Tamaki, T. Sato. Unfold/Fold Transformation of Logic Programs. In:S.-A. Tärnlund (ed.), Proceedings of the 2nd International Conference on Logic Programming, Uppsala, Sweden, 1984, pp.127–138.
D. Taubner. Finite representations of CCS and TCSP programs by automata and Petri nets. Lecture Notes in Computer Science, vol. 369. Berlin, Heidelberg, New York: Springer 1989.
G. Veltink. The PSF toolkit. Computer Networks and ISDN Systems, North Holland, 25, pp. 875–898 (1993).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
De Francesco, N., Santone, A. (1996). Unfold/Fold transformations of concurrent processes. In: Kuchen, H., Doaitse Swierstra, S. (eds) Programming Languages: Implementations, Logics, and Programs. PLILP 1996. Lecture Notes in Computer Science, vol 1140. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61756-6_84
Download citation
DOI: https://doi.org/10.1007/3-540-61756-6_84
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61756-3
Online ISBN: 978-3-540-70654-0
eBook Packages: Springer Book Archive