Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/258993.259014acmconferencesArticle/Chapter ViewAbstractPublication PagespepmConference Proceedingsconference-collections
Article
Free access

A transformation system for CLP with dynamic scheduling and CCP

Published: 01 December 1997 Publication History

Abstract

In this paper we study unfold/fold transformations for constraint logic programs (CLP) with dynamic scheduling and for concurrent constraint programming (CCP). We define suitable applicability conditions for these transformations which guarantee that the original and the transformed program have the same results of successful derivations and the same deadlock free queries.The possible applications of these results are twofold. On one hand we can use the unfold/fold system to optimize CLP and CCP programs while preserving their intended meaning and in particular without the risk of introducing deadlocks. On the other hand, unfold/fold transformations can be used for proving deadlock freeness of a class of queries in a given program: to this aim it is 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. As shown by several interesting examples, this yields a methodology for proving deadlock freeness which is simple and powerful at the same time.

References

[1]
K. R. Apt and I. Luitjes. Verification of logic programs with delay declarations. In A. Borzyszkowski and S. Sokolowski, editors, Proceedings of the Fourth International Conference on Algebraic Methodology and Software Technology, (AMAST'95), Lecture Notes in Computer Science, Berlin, 1995. Springer-Verlag.
[2]
N. Bensaou and I. Guessarian. Transforming Constraint Logic Programs. In F. Turini, editor, Proc. Fourth Workshop on Logic Program Synthesis and Transformation, 1994.
[3]
R.M. Burstall and J. Darlington. A transformation system for developing recursive programs. Journal of the ACM, 24(1):44-67, January 1977.
[4]
P. Chambre, P. Deransart, and J. Matuszyfiski. A proof method for safety properties of clausal concurrent constraint programs. In F. de Boer and M. Gabbrielli, editors, Proc. JICSLP'96 Post-Conference Workshop on Verification and Analysis of Logic Programs, 1996. Technical Report TR-96-31, Dipartimento di Informatica di Pisa.
[5]
K.L. Clark and S. Sickel. Predicate logic: a calculus for deriving programs. In Proceedings of IJCAI'77, pages 419-120, 1977.
[6]
M. Codish, M. Falaschi, and K. Marriott. Suspension Analyses for Concurrent Logic Programs. A CM Transactions on Programming Languages and Systems, 16(3):649-686, 1994.
[7]
C. Codognet, P. Codognet, and M. Corsini. Abstract Interpretation for Concurrent Logic Languages. In S. Debray and M. Hermenegildo, editors, Proc. North American Conf. on Logic Programming'g0, pages 215- 232. MIT Press, 1990.
[8]
F.S. de Boer, M. Gabbrielli, and C. Palamidessi. Proving correctness of constraint logic programs with dynamic scheduling, in Static Analysis, Third International Static Analysis Symposium, (SAS'96), LNCS. Springer-Verlag, Berlin, 1996.
[9]
M. Garcia de la Banda, K. Marriott, and P. Stuckey. Efficient analysis of logic programs with dynamic scheduling. In J. Lloyd, editor, Proc. Twelfth International Logic Programming Symposium, pages 417-431. MIT Press, 1995.
[10]
S. Debray, D. Gudemann, and P. Bigot. Detection and optimization of suspension-free logic programs. In M. Bruynooghe, editor, Proc. Eleventh International Logic Programming Symposium, pages 487-504. MIT Press, 1994.
[11]
S. Etalle and M. Gabbrielli. The replacement operation for CLP modules. In N. Jones, editor, A CM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM '95), pages 168-177. ACM press, 1995.
[12]
S. Etalle and M. Gabbrielli. Layered modes. In F. de Boer and M. Gabbrielli, editors, Proc. JICSLP'96 Post-Conference Workshop on Verification and Analysis of Logic Programs, 1996. Tehcnical Report TR-96- 31, Dipaxtimento di Informatica di Pisa.
[13]
S. Etalle and M. Gabbrielli. Transformations of CLP modules. Theoretical Computer Science, 166(1):101- 146, 1996.
[14]
N. De Francesco and A. Santone. Unfold/fold transformation of concurrent processes. In H. Kuchen and S.Doaitse Swierstra, editors, Proc. 8th Int'l Syrup. on Programming Languages: Implementations, Logics and Programs, volume 1140, pages 167-181. Springer- Verlag, 1996.
[15]
Nevin Heintze, Spiro Michaylov, and Peter J. Stuckey. CLP(~) and some electrical engineering problems. In Jean-Louis Lassez, editor, ICLP'87: Proceedings 4th International Conference on Logic Programming, pages 675-703, Melbourne, Victoria, Australia, May 1987. MIT Press. Also in Journal of Automated Reasoning vol. 9, pages 231-260, October 1992.
[16]
C.J. Hogger. Derivation of logic programs. Journal of the A CM, 28(2):372-392, April 1981.
[17]
J. Ja.ffar and J.-L. Lassez. Constraint Logic Programming. In Proc. Fourteenth Annual A CM Syrup. on Principles of Programming Languages, pages 111-119. ACM, 1987.
[18]
J. Jaffar, S. Michaylov, and P. Stuckey. The clp(V)language and system. A CM Transactions on Programming Languages and Systems, 14(3):339-395, July 1992.
[19]
Joxan Jaffar and Michael J. Maher. Constraint logic programming: A survey. Journal of Logic Programming, 19/20:503-581, 1994.
[20]
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 Ninth ACM Symposium on Principles of Programming Languages, Albuquerque, New Mexico, pages 255-267. ACM, 1982.
[21]
A. Lakhotia and L. Sterling. Composing recursive logic programs with clausal join. New Generation Computing, 6(2,3):211-225, 1988.
[22]
C. Lassez, K. McAloon, and R. Yap. Constraint Logic Programming and Option Trading. IBEE Expert, 2(3), 1987.
[23]
M. J. Maher. A CLP view of Logic Programming. In H. Kirchner and G. Levi, editors, Proc. of the Third Int'l Conf. on Algebraic and Logic Programming, volume 632 of Lecture Notes in Computer Science, pages 364-383. Springer-Verlag, Berlin, 1992.
[24]
M.J. Maher. A transformation system for deductive databases with perfect model semantics. Theoretical Computer Science, 110(2):377-403, March 1993.
[25]
E. Marchiori and F. Teusink. Proving termination of logic programs with delay declarations. In J. Lloyd, editor, Proc. Twelfth International Logic Programming Symposium. MIT Press, 1995.
[26]
K. Marriott, M. Gaxcia de la Banda, and M. Hermenegildo. Analyzing logic programs with dynamic scheduling. In Proc. 21st Annual A CM Syrup. on Principles of Programming Languages, pages 240-253. ACM Press, 1994.
[27]
L. Naish. An introduction to mu-prolog. Technical Report 82/2, The University of Melbourne, 1982.
[28]
A. Pettorossi and M. Proietti. Transformation of logic programs: Foundations and techniques.Journal of Logic Programming, 19,20:261-320, 1994.
[29]
D. Sahlin. Partial Evaluation of AKL. in Proceedings of the First International Conference on Concurrent Constraint Programming, 1995.
[30]
V.A. Saraswat, M. Rinard, and P. Panangaden. Semantics foundations of concurrent constraint programming. In Proc. Eighteenth Annual A CM Syrup. on Principles of Programming Languages. ACM Press, 1991.
[31]
V.A. Saraswat and M. Rinard. Concurrent constraint programming. In Proc. of the Seventeenth A CM Symposium on Principles o} Programming Languages, pages 232-245. ACM, New York, 1990.
[32]
H. Tamaki and T. Sato. Unfold/Fold Transformations of Logic Programs. In Sten-/~ke T~nlund, editor, Proc. Second Int'l Conf. on Logic Programming, pages 127- 139, 1984.
[33]
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.
[34]
M.H. van Emden and G.J. de Lucena. Predicate logic as a language for parallel programming. In K.L. Clark and S.-A. T~rnlund, editors, Logic Programming, London, 1982. Academic Press.
[35]
Pascal Van Hentenryck. Constraint Satisfaction in Logic Programming. MIT Press, Cambridge, MA, 1989.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PEPM '97: Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
December 1997
217 pages
ISBN:0897919173
DOI:10.1145/258993
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 December 1997

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrent constraint logic programming
  2. coroutining
  3. deadlock
  4. transformation

Qualifiers

  • Article

Conference

PEPM97
Sponsor:

Acceptance Rates

Overall Acceptance Rate 66 of 120 submissions, 55%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)55
  • Downloads (Last 6 weeks)14
Reflects downloads up to 30 Aug 2024

Other Metrics

Citations

Cited By

View all
  • (2011)Efficient local unfolding with ancestor stacks*Theory and Practice of Logic Programming10.1017/S147106840999026311:1(1-32)Online publication date: 1-Jan-2011
  • (2010)The transformational approach to program developmentA 25-year perspective on logic programming10.5555/1880413.1880420(112-135)Online publication date: 1-Jan-2010
  • (2010)The Transformational Approach to Program DevelopmentA 25-Year Perspective on Logic Programming10.1007/978-3-642-14309-0_6(112-135)Online publication date: 2010
  • (2006)Unfold/fold transformations of CCP programsCONCUR'98 Concurrency Theory10.1007/BFb0055633(348-363)Online publication date: 28-May-2006
  • (2005)Non-leftmost unfolding in partial evaluation of logic programs with impure predicatesProceedings of the 15th international conference on Logic Based Program Synthesis and Transformation10.1007/11680093_8(115-132)Online publication date: 7-Sep-2005
  • (2004)Efficient local unfolding with ancestor stacks for full prologProceedings of the 14th international conference on Logic Based Program Synthesis and Transformation10.1007/11506676_10(149-165)Online publication date: 26-Aug-2004
  • (1999)Properties of Input-Consuming DerivationsElectronic Notes in Theoretical Computer Science10.1016/S1571-0661(04)00116-130:1(102-124)Online publication date: 1999
  • (1998)Partial evaluation of concurrent constraint languagesACM Computing Surveys10.1145/289121.28913230:3es(11-es)Online publication date: 1-Sep-1998
  • (2002)The narrowing-driven approach to functional logic program specializationNew Generation Computing10.1007/BF0303725720:1(3-26)Online publication date: 1-Jan-2002

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media