Unfold/fold transformations of CCP programs

  • Sandro Etalle
  • Maurizio Gabbrielli
  • Maria Chiara Meo
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1466)


We introduce a transformation system for concurrent constraint programming (CCP). We define suitable applicability conditions for the transformations which guarantee that the input/output ccp semantics is preserved also when distinguishing deadlocked computations from successful ones.

The systems allows to optimize CCP programs while preserving their intended meaning. Furthermore, since it preserves the deadlock behaviour of programs, it can be used for proving deadlock freeness of a class of queries in a given program.


Transformation Concurrent Constraint Programming Deadlock 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    N. Bensaou and I. Guessarian. Transforming Constraint Logic Programs. In F. Turini, editor, Proc. Fourth Workshop on Logic Program Synthesis and Transformation, 1994.Google Scholar
  2. 2.
    R.M. Burstall and J. Darlington. A transformation system for developing recursive programs. Journal of the ACM, 24(1):44–67, January 1977.MATHMathSciNetCrossRefGoogle Scholar
  3. 3.
    K.L. Clark and S. Sickel. Predicate logic: a calculus for deriving programs. In Proceedings of IJCAI'77, pages 419–120, 1977.Google Scholar
  4. 4.
    F.S. de Boer, M. Gabbrielli, E. Marchiori, and C. Palamidessi. Proving concurrent constraint programs correct. ACM Transactions on Programming Languages and Systems, 1998. to appear.Google Scholar
  5. 5.
    S. Etalle and M. Gabbrielli. Transformations of CLP modules. Theoretical Computer Science, 166(1):101–146, 1996.MATHMathSciNetCrossRefGoogle Scholar
  6. 6.
    S. Etalle and M. Gabbrielli. Partial evaluation of concurrent constraint languages. ACM Computing Surveys, 1998. to appear.Google Scholar
  7. 7.
    S. Etalle, M. Gabbrielli, and E. Marchiori. A Transformation System for CLP with Dynamic Scheduling and CCP. In ACM-SIGPLAN Symposium on Partial Evaluation and Semantic Based Program Manipulation. ACM Press, 1997.Google Scholar
  8. 8.
    N. De Francesco and A. Santone. Unfold/fold transformation of concurrent processes. In H. Kuchen and S.Doaitse Swierstra, editors, Proc. 8th Int'l Symp. on Programming Languages: Implementations, Logics and Programs, volume 1140, pages 167–181. Springer-Verlag, 1996.Google Scholar
  9. 9.
    C.J. Hogger. Derivation of logic programs. Journal of the ACM, 28(2):372–392, April 1981.MATHMathSciNetCrossRefGoogle Scholar
  10. 10.
    N. JØrgensen, K. Marriot, and S. Michaylov. Some Global Compile-Time Optimizations for CLP(R). In Proc. 1991 Int'l Symposium on Logic Programming, pages 420–434, 1991.Google Scholar
  11. 11.
    H. Komorowski. Partial evaluation as a means for inferencing data structures in an applicative language: A theory and implementation in the case of Prolog. In Proc. Ninth ACM Symposium on Principles of Programming Languages, pages 255–267. ACM, 1982.Google Scholar
  12. 12.
    J. W. Lloyd. Foundations of Logic Programming. Symbolic Computation — Artificial Intelligence. Springer-Verlag, Berlin, 1987. Second edition.Google Scholar
  13. 13.
    M.J. Maher. A transformation system for deductive databases with perfect model semantics. Theoretical Computer Science, 110(2):377–403, March 1993.MATHMathSciNetCrossRefGoogle Scholar
  14. 14.
    R. Milner. Communication and Concurrency. Prentice-Hall, 1989.Google Scholar
  15. 15.
    T Mogensen and P Sestoft. Partial evaluation. In A. Kent and J.G. Williams, editors, Encyclopedia of Computer Science and Technology, volume 37, pages 247–279. M. Dekker, 1997.Google Scholar
  16. 16.
    A. Pettorossi and M. Proietti. Transformation of logic programs: Foundations and techniques. Journal of Logic Programming, 19,20:261–320, 1994.MATHMathSciNetCrossRefGoogle Scholar
  17. 17.
    D. Sahlin. Partial Evaluation of AKL. In Proceedings of the First International Conference on Concurrent Constraint Programming, 1995.Google Scholar
  18. 18.
    V. A. Saraswat. Concurrent Constraint Programming Languages. PhD thesis, Carnegie-Mellon University, January 1989.Google Scholar
  19. 19.
    V.A. Saraswat and M. Rinard. Concurrent constraint programming. In Proc. of the Seventeenth ACM Symposium on Principles of Programming Languages, pages 232–245. ACM, New York, 1990.Google Scholar
  20. 20.
    V.A. Saraswat, M. Rinard, and P. Panangaden. Semantics foundations of concurrent constraint programming. In Proc. Eighteenth Annual ACM Symp. on Principles of Programming Languages. ACM Press, 1991.Google Scholar
  21. 21.
    G. Smolka. The Oz programming model. In Jan van Leeuwen, editor, Computer Science Today, number 1000 in LNCS. Springer-Verlag, 1995. see Scholar
  22. 22.
    H. Tamaki and T. Sato. Unfold/Fold Transformations of Logic Programs. In Stenåke Tärnlund, editor, Proc. Second Int'l Conf. on Logic Programming, pages 127–139, 1984.Google Scholar
  23. 23.
    K. Ueda and K. Furukawa. Transformation rules for GHC Programs. In Proc. Int'l Conf. on Fifth Generation Computer Systems, pages 582–591. Institute for New Generation Computer Technology, Tokyo, 1988.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • Sandro Etalle
    • 1
  • Maurizio Gabbrielli
    • 2
  • Maria Chiara Meo
    • 3
  1. 1.Universiteit MaastrichtMD MaastrichtThe Netherlands
  2. 2.Dipartimento di InformaticaUniversità di PisaPisaItaly
  3. 3.Diaprtimento di Matematica Pura e ApplicataUniversità di L'Aquila, Loc. CoppitoL'AquilaItaly

Personalised recommendations