Unfold/fold transformations of CCP programs
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.
KeywordsTransformation Concurrent Constraint Programming Deadlock
Unable to display preview. Download preview PDF.
- 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
- 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
- 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
- 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
- 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
- 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