Abstract
The replacement is a very powerful transformation operation which – both within the functional paradigm as well as within the logic programming one – can mimic the most common transformation operations such as unfold, fold, switching, distribution. Because of this flexibility, it can be incorrect if used without specific applicability conditions.
In this paper we present applicability conditions which ensure the correctness of the replacement operation in the context of Concurrent Constraint Programs. Furthermore we show that, under these conditions, the replacement generalizes both the unfolding operation as well as a restricted form of folding operation.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Bensaou, N., Guessarian, I.: Transforming constraint logic programs. Theoretical Computer Science 206(1-2), 81–125 (1998)
Bertolino, M.: Transformazione dei programmi concorrenti Tesi di Laurea, Dip. Informatica e Scienze dell’ Informazione, Università di Genova, Genova, Italy (1997)
Bossi, A., Cocco, N.: Basic Transformation Operations which preserve Computed Answer Substitutions of Logic Programs. Journal of Logic Programming 16(1&2), 47–87 (1993)
Bossi, A., Cocco, N., Etalle, S.: On Safe Folding. In: Bruynooghe, M., Wirsing, M. (eds.) PLILP 1992. LNCS, vol. 631, pp. 172–186. Springer, Heidelberg (1992)
Bossi, A., Cocco, N., Etalle, S.: Simultaneous replacement in normal programs. Journal of Logic and Computation 6(1), 79–120 (1996)
Cook, J., Gallagher, J.P.: A transformation system for definite programs based on termination analysis. In: Turini, F. (ed.) Proc. Fourth Workshop on Logic Program Synthesis and Transformation. Springer, Heidelberg (1994)
Etalle, S., Gabbrielli, M.: On the correctness of the replacement operation for clp modules. Journal of Functional and Logic Programming (February 1996), available at http://www.cs.tu-berlin.de/journal/jflp
Etalle, S., Gabbrielli, M.: Transformations of CLP modules. Theoretical Computer Science 166(1), 101–146 (1996)
Etalle, S., Gabbrielli, M., Meo, M.C.: Unfold/Fold transformations of CCP programs. In: Sangiorgi, D., de Simone, R. (eds.) CONCUR 1998. LNCS, vol. 1466, pp. 348–363. Springer, Heidelberg (1998)
De Francesco, N., Santone, A.: Unfold/fold transformation of concurrent processes. In: Kuchen, H., Swierstra, S.D. (eds.) PLILP 1996. LNCS, vol. 1140, pp. 167–181. Springer, Heidelberg (1996)
Fujita, H., Okumura, A., Furukawa, K.: Partial evaluation of GHC programs based on the UR-set with constraints. In: Kowalski, R.A., Bowen, K.A. (eds.) Logic Programming: Fifth International Conference and Symposium, vol. 2, pp. 924–941. MIT Press, Cambridge (1988)
Gardner, P.A., Shepherdson, J.C.: Unfold/fold transformations of logic programs. In: Lassez, J.-L., Plotkin, G. (eds.) Computational Logic: Essays in Honor of Alan Robinson. MIT Press, Cambridge (1991)
Gengler, M., Martel, M.: Self-applicable partial evaluation for the pi-calculus. In: ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM 1997), pp. 36–46. ACM Press, New York (1997)
Hosoya, H., Kobayashi, N., Yonezawa, A.: Partial evaluation scheme for concurrent languages and its correctness. In: Fraigniaud, P., Mignotte, A., Bougé, L., Robert, Y. (eds.) Euro-Par 1996. LNCS, vol. 1123, pp. 625–632. Springer, Heidelberg (1996)
Jørgensen, N., Marriott, K., Michaylov, S.: Some global compile-time optimizations for CLP(R). In: Saraswat, V., Ueda, K. (eds.) International Logic Programming Symposium, San Diego, pp. 420–434. MIT Press, Cambridge (1991)
Maher, M.J.: A transform ation system for deductive databases with perfect model semantics. Theoretical Computer Science 110(2), 377–403 (1993)
Marinescu, M., Goldberg, B.: Partial-evaluation techniques for concurrent programs. In: ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM 1997), pp. 47–62. ACM Press, New York (1997)
Marriott, K., Søndergaard, H.: Analysis of constraint logic programs. In: Debray, S., Hermenegildo, M. (eds.) Proceedings North American Conference on Logic Programming, MIT Press, Cambridge (1990)
Marriott, K., Stuckey, P.J.: The 3 r’s of optimizing constraint logic programs: Refinement, removal and reordering. In: POPL 1993: Proceedings ACM SIGPLAN Symposium on Principles of Programming Languages, Charleston (January 1993)
Park, D.M.R.: Concurrency and automata on infinite sequences. In: Deussen, P. (ed.) Proc. of the 5th GI conference. LNCS, pp. 167–183. Springer, Heidelberg (1981)
Pettorossi, A., Proietti, M.: Transformation of logic programs: Foundations and techniques. Journal of Logic Programming 19, 20, 261–320 (1994)
Proietti, M., Pettorossi, A.: Synthesis and transformation f logic programs using unfold/fold proofs. Journal of Logic Programming 41(2-3), 197–230 (1999)
Sahlin, D.: Partial Evaluation of AKL. In: Proceedings of the First International Conference on Concurrent Constraint Programming (1995)
Sands, D.: Total correctness by local improvement in program transformation. In: Proceedings of the 22nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL). ACM Press, New York (1995)
Sands, D.: Total correctness by local improvement in the transformation of functional programs. ACM Transactions on Programming Languages and Systems 18(2), 175–234 (1996)
Saraswat, V.A., Rinard, M., Panangaden, P.: Semantics foundations of concurrent constraint programming. In: Proc. Eighteenth Annual ACM Symp. on Principles of Programming Languages. ACM Press, New York (1991)
Sato, T.: Equivalence-preserving first-order unfold/fold transformation system. Theoretical Computer Science 105(1), 57–84 (1992)
Tamaki, H., Sato, T.: Unfold/Fold Transformations of Logic Programs. In: Tärnlund, S.-Å. (ed.) Proc. Second Int’l Conf. on Logic Programming, pp. 127–139 (1984)
Ueda, K., Furukawa, K.: Transformation rules for GHC Programs. In: Proc. Int’l Conf. on Fifth Generation Computer Systems. Institute for New Generation Computer Technology, Tokyo, pp. 582–591 (1988)
van Glabbeek, R.J.: The linear time - branching time spectrum. In: Baeten, J.C.M., Klop, J.W. (eds.) CONCUR 1990. LNCS, vol. 458, pp. 278–297. Springer, Heidelberg (1990)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bertolino, M., Etalle, S., Palamidessi, C. (2000). The Replacement Operation for CCP Programs. In: Bossi, A. (eds) Logic-Based Program Synthesis and Transformation. LOPSTR 1999. Lecture Notes in Computer Science, vol 1817. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10720327_13
Download citation
DOI: https://doi.org/10.1007/10720327_13
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67628-7
Online ISBN: 978-3-540-45148-8
eBook Packages: Springer Book Archive