skip to main content
article
Open Access

Transformations of CCP programs

Published:01 May 2001Publication History
Skip Abstract Section

Abstract

We introduce a transformation system for concurrent constraint programming (CCP). We define suitable applicability conditions for the transformations that guarantee the input/output CCP semantics is also preserved when distinguishing deadlocked computations from successful ones and when considering intermediate results of (possibly) nonterminating computations.The system allows us to optimize CCP programs while preserving their intended meaning: In addition to the usual benefits for sequential declarative languages, the transformation of concurrent programs can also lead to the elimination of communication channels and of synchronization points, to the transformation of nondeterministic computations into deterministic ones, and to the crucial saving of computational space. Furthermore, since the transformation system preserves the deadlock behavior of programs, it can be used for proving deadlock-freeness of a given program with respect to a class of queries. To this aim, it is sometimes sufficient to apply our transformations and to specialize the resulting program with respect to the given queries in such a way that the obtained program is trivially deadlock-free.

References

  1. BENSAOU,N.AND GUESSARIAN, I. 1998. Transforming constraint logic programs. Theor. Comput. Sci. 206, 1-2, 81-125. Google ScholarGoogle Scholar
  2. BOER,F.S.D.,GABBRIELLI, M., MARCHIORI, E., AND PALAMIDESSI, C. 1997. Proving concurrent constraint programs correct. ACM Trans. Program. Lang. Syst. 19, 5, 685-725. Google ScholarGoogle Scholar
  3. BURSTALL,R.AND DARLINGTON, J. 1977. A transformation system for developing recursive programs. J. ACM 24, 1 (Jan.), 44-67. Google ScholarGoogle Scholar
  4. CLARK,K.AND SICKEL, S. 1977. Predicate logic: a calculus for deriving programs. In Proceedings of IJCAI'77. 419-120.Google ScholarGoogle Scholar
  5. CODISH, M., FALASCHI, M., AND MARRIOTT, K. 1994. Suspension analyses for concurrent logic programs. ACM Trans. Program. Lang. Syst. 16, 3, 649-686. Google ScholarGoogle Scholar
  6. DE BOER,F.AND PALAMIDESSI, C. 1991. A fully abstract model for concurrent constraint programming. In TAPSOFT/CAAP. S. Abramsky and T. Maibaum, eds. LNCS 493, Springer Verlag. Google ScholarGoogle Scholar
  7. DE BOER,F.AND PALAMIDESSI, C. 1992. On the semantics of concurrent constraint programming. In ALPUK 92, Workshops in Computing, Springer-Verlag, 145-173.Google ScholarGoogle Scholar
  8. ETALLE,S.AND GABBRIELI, M. 1998. Partial evaluation of concurrent constraint languages. ACM Comput. Surv. 30, (Sept.). Google ScholarGoogle Scholar
  9. ETALLE,S.AND GABBRIELLI, M. 1996. Transformations of CLP modules. Theor. Comput. Sci. 166, 1, 101-146. Google ScholarGoogle Scholar
  10. ETALLE, S., GABBRIELLI, M., AND MEO, M. C. 1998. Unfold/fold transformations of CCP programs. In CONCUR98-1998 International Conference on Concurrency Theory, D. Sangiorgi and R. de Simone, eds. LNCS 1466, Springer Verlag, 348-363. Google ScholarGoogle Scholar
  11. FRANCESCO,N.D.AND SANTONE, A. 1996. Unfold/fold transformation of concurrent processes. In Proceeding of the. 8th International Symposium. on Programming Languages: Implementations, Logics and Programs, H. Kuchen and S. Swierstra, eds. Vol. 1140, Springer Verlag, 167-181. Google ScholarGoogle Scholar
  12. GENGLER,M.AND MARTEL, M. 1997. Self-applicable partial evaluation for pi-calculus. In Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM-97). ACM SIGPLAN Not. 32, 12. ACM Press, New York, 36-46. Google ScholarGoogle Scholar
  13. HOGGER, C. 1981. Derivation of logic programs. J. ACM 28, 2 (April), 372-392. Google ScholarGoogle Scholar
  14. HOSOYA, H., KOBAYASHI,N.,AND YONEZAWA, A. 1996. Partial evaluation scheme for concurrent languages and its correctness. In Euro-Par'96, LNCS 1123, Springer Verlag, 625-632. Google ScholarGoogle Scholar
  15. JAFFAR,J.AND MAHER, M. J. 1994. Constraint logic programming: A survey. J. Logic Program. 19/20, 503-581.Google ScholarGoogle Scholar
  16. JORGENSEN, N., MARRIOTT, K., AND MICHAYLOV, S. 1991. Some global compile-time optimizations for CLP( R ). In Proceeding of the International Logic Programming Symposium, V. Saraswat and K. Ueda, eds. MIT Press, Cambridge, MA, 420-434.Google ScholarGoogle Scholar
  17. KAWAMURA,T.AND KANAMORI, T. 1988. Preservation of stronger equivalence in unfold/fold logic programming transformation. In Proceeding of the Internatinal Conference on Fifth Generation Computer Systems. Institute for New Generation Computer Technology, Tokyo, 413-422.Google ScholarGoogle Scholar
  18. KOMOROWSKI, H. 1982. Partial evaluation as a means for inferencing data structures in an applicative language: A theory and implementation in the case of Prolog. In Proceedings of the Ninth ACM Symposium on Principles of Programming Languages (Albuquerque, NM). ACM Press, New York, NY, 255-267. Google ScholarGoogle Scholar
  19. LLOYD, J. W. 1987. Foundations of Logic Programming. 2dn ed. Springer Verlag, Berlin. Google ScholarGoogle Scholar
  20. MAHER, M. 1993. A transformation system for deductive databases with perfect model semantics. Theor. Comput. Sci. 110, 2 (March), 377-403. Google ScholarGoogle Scholar
  21. MARINESCU,M.AND GOLDBERG, B. 1997. Partial-evaluation techniques for concurrent programs. In Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM-97). ACM SIGPLAN Not. 32, 12. ACM Press, New York, NY, 47-62. Google ScholarGoogle Scholar
  22. MILNER, R. 1989. Communication and Concurrency. Prentice-Hall, Englewood Cliffs, NJ. Google ScholarGoogle Scholar
  23. MOGENSEN,T.AND SESTOFT, P. 1997. Partial evaluation. In Encyclopedia of Computer Science and Technology, A. Kent and J. Williams, eds. Vol. 37. Marcel. Dekker, 247-279.Google ScholarGoogle Scholar
  24. PETTOROSSI,A.AND PROIETTI, M. 1994. Transformation of logic programs: Foundations and techniques. J. Logic Program. 19, 20, 261-320.Google ScholarGoogle Scholar
  25. SAHLIN, D. 1995. Partial evaluation of AKL. In Proceedings of the First International Conference on Concurrent Constraint Programming.Google ScholarGoogle Scholar
  26. SARASWAT,V.AND RINARD, M. 1990. Concurrent constraint programming. In Proceeding of the 17th ACM Symposium on Principles of Programming Languages. ACM Press, New York, NY, 232-245. Google ScholarGoogle Scholar
  27. SARASWAT, V., RINARD, M., AND PANANGADEN, P. 1991. Semantics foundations of concurrent constraint programming. In Proceeding of the 18th Annual ACM Symposium on Principles of Programming Languages. ACM Press, New York, NY. Google ScholarGoogle Scholar
  28. SARASWAT, V. A. 1989. Concurrent constraint programming languages. Ph.D. thesis, Carnegie- Mellon University, Pittsburgh, PA. Google ScholarGoogle Scholar
  29. SMOLKA, G. 1995. The Oz programming model. In Computer Science Today, J. van Leeuwen, ed. LNCS 1000, Springer Verlag; see www.ps.uni-sb.de/oz/.Google ScholarGoogle Scholar
  30. TAMAKI, H., AND SATO, T. 1984. Unfold/fold transformations of logic programs. In Proceedings of the Second International Conference on Logic Programming, S.-A. ke Tarnlund, ed. 127-139.Google ScholarGoogle Scholar
  31. UEDA, K. 1986. Guarded Horn clauses. In Logic Programming '85, E. Wada, ed. LNCS 221, Springer Verlag, Berlin, 168-179. Google ScholarGoogle Scholar
  32. UEDA,K.AND FURUKAWA, K. 1988. Transformation rules for GHC programs. In Proceedings of the Internatinal Conference on Fifth Generation Computer Systems. Institute for New Generation Computer Technology, Tokyo, 582-591.Google ScholarGoogle Scholar

Index Terms

  1. Transformations of CCP programs

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader