Skip to main content

Unfold/Fold transformations of concurrent processes

  • Program Transformation
  • Conference paper
  • First Online:
Programming Languages: Implementations, Logics, and Programs (PLILP 1996)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1140))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. A. Bouali, S. Gnesi, S. Larosa. The integration Project for the JACK Environment. Bulletin of the EATCS, n.54, October 1994, pp.207–223.

    Google Scholar 

  5. R.M. Burstall, J. Darlington. A Transformation System for Developing Recursive Programs. J. ACM 24(1): pp. 44–67 (1977).

    Google Scholar 

  6. 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.

    Google Scholar 

  7. R. Cleaveland, J. Parrow, B. Steffen. The concurrency workbench: operating instructions. Tech. Notes Sussex University, 1988.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. 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).

    Google Scholar 

  10. N. De Francesco, P. Inverardi. Proving Finiteness of CCS Processes by Nonstandard Semantics. Acta informatica, vol.31, n.1, 1994, pp. 55–80.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. N. De Francesco, A. Santone. Transforming Concurrent Processes. Internal Report IR-2/94, Dipartimento di Ingegneria dell'Informazione, Univ. of Pisa.

    Google Scholar 

  13. R. De Simone, D. Vergamini. Aboard AUTO. INRIA Technical Report 111, 1989.

    Google Scholar 

  14. J. Fernandez.: Aldebaran. Un system de verification par reduction de processus communicantes. Ph.D. Thesis, Université de Grenoble, 1988.

    Google Scholar 

  15. P.A. Gardner and J.C. Shepherdson. Unfold/Fold Transformations of Logic Programs, in Computational Proofs: Essays in honour of G. Robinson (1991).

    Google Scholar 

  16. 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.

    Google Scholar 

  17. P.C. Kanellakis, S.A. Smolka. CCS Expressions, finite state processes and three problems of equivalence. Inf. Comput. 86 (1990).

    Google Scholar 

  18. 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).

    Google Scholar 

  19. L. Kott. About Transformation System. A Theoretical Study, 3ème Colloque International sur la Programmation, Dunod, Paris, 1978, pp. 232–247.

    Google Scholar 

  20. Catalogue of LOTOS Correctness Preserving Transformations. ESPIT Project, Final Deliverable, April 1992.

    Google Scholar 

  21. 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.

    Google Scholar 

  22. R. Milner. Communication and Concurrency. Prentice-Hall, 1989.

    Google Scholar 

  23. 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.

    Google Scholar 

  24. 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.

    Google Scholar 

  25. A. Pettorossi, M. Proietti. Transformation of Logic Programs: Foundations and Techniques. In J. Logic Programming 1994, 19, 20: pp.261–320.

    Google Scholar 

  26. 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.

    Google Scholar 

  27. 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.

    Google Scholar 

  28. 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.

    Google Scholar 

  29. G. Veltink. The PSF toolkit. Computer Networks and ISDN Systems, North Holland, 25, pp. 875–898 (1993).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Herbert Kuchen S. Doaitse Swierstra

Rights and permissions

Reprints 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

Publish with us

Policies and ethics