Skip to main content

Unfold/fold transformations of CCP programs

  • Conference paper
  • First Online:
CONCUR'98 Concurrency Theory (CONCUR 1998)

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

Included in the following conference series:

Abstract

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.

The work of the third author was partially supported by the MURST 40% project: Tecniche speciali per la verifica, l'analisi, la sintesi e la trasformazione di programmi”.

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. 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. R.M. Burstall and J. Darlington. A transformation system for developing recursive programs. Journal of the ACM, 24(1):44–67, January 1977.

    Article  MATH  MathSciNet  Google Scholar 

  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. 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. S. Etalle and M. Gabbrielli. Transformations of CLP modules. Theoretical Computer Science, 166(1):101–146, 1996.

    Article  MATH  MathSciNet  Google Scholar 

  6. S. Etalle and M. Gabbrielli. Partial evaluation of concurrent constraint languages. ACM Computing Surveys, 1998. to appear.

    Google Scholar 

  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. 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. C.J. Hogger. Derivation of logic programs. Journal of the ACM, 28(2):372–392, April 1981.

    Article  MATH  MathSciNet  Google Scholar 

  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. 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. J. W. Lloyd. Foundations of Logic Programming. Symbolic Computation — Artificial Intelligence. Springer-Verlag, Berlin, 1987. Second edition.

    Google Scholar 

  13. M.J. Maher. A transformation system for deductive databases with perfect model semantics. Theoretical Computer Science, 110(2):377–403, March 1993.

    Article  MATH  MathSciNet  Google Scholar 

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

    Google Scholar 

  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. A. Pettorossi and M. Proietti. Transformation of logic programs: Foundations and techniques. Journal of Logic Programming, 19,20:261–320, 1994.

    Article  MATH  MathSciNet  Google Scholar 

  17. D. Sahlin. Partial Evaluation of AKL. In Proceedings of the First International Conference on Concurrent Constraint Programming, 1995.

    Google Scholar 

  18. V. A. Saraswat. Concurrent Constraint Programming Languages. PhD thesis, Carnegie-Mellon University, January 1989.

    Google Scholar 

  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. 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. G. Smolka. The Oz programming model. In Jan van Leeuwen, editor, Computer Science Today, number 1000 in LNCS. Springer-Verlag, 1995. see www.ps.uni-sb.de/oz/.

    Google Scholar 

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

Download references

Author information

Authors and Affiliations

Authors

Editor information

Davide Sangiorgi Robert de Simone

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Etalle, S., Gabbrielli, M., Meo, M.C. (1998). Unfold/fold transformations of CCP programs. In: Sangiorgi, D., de Simone, R. (eds) CONCUR'98 Concurrency Theory. CONCUR 1998. Lecture Notes in Computer Science, vol 1466. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0055633

Download citation

  • DOI: https://doi.org/10.1007/BFb0055633

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-64896-3

  • Online ISBN: 978-3-540-68455-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics