skip to main content
article
Open access

Suspension analyses for concurrent logic programs

Published: 01 May 1994 Publication History

Abstract

Concurrent logic languages specify reactive systems which consist of collections of communicating processes. The presence of unintended suspended computations is a common programming error which is difficult to detect using standard debugging and testing techniques. We develop a number of analyses, based on abstract interpretation, which succeed if a program is definitely suspension free. If an analysis fails, the program may, or may not, be suspension free. Examples demonstrate that the analyses are practically useful. They are conceptually simple and easy to justify because they are based directly on the transition system semantics of concurrent logic programs. A naive analysis must consider all scheduling policies. However, it is proven that for our analyses it suffices to consider only one scheduling policy, allowing for efficient implementation.

References

[1]
BARBUTI, R., AND MARTELLI, M. 1990. Recognizing non-floundering logic programs and goals. Int. J. Found. Comput. Sci., 1, 2, 151-163.
[2]
BOSSI, A., Cocco, N., AND FABRIS, M. 1991. Proving termination of logic programs by exploiting term properties. In Proceedings of TAPSOFT'91. Lecture Notes in Computer Science, vol. 494. Springer-Verlag, Berlin, 153-180.
[3]
CODISH, M., DAMS, D., AND EYAL, Y. 1991. Derivation and safety of an abstract unification algorithm for groundness and aliasing analysis, in Proceedings of the 8th International Conference on Logic Programming. MIT Press, Cambridge, Mass., 79-93.
[4]
CODISH, M., FAI~SCHI, M., AND MARRIOTT, K. 1991. Suspension analysis for concurrent logic programs. In Proceedings of the 8th International Conference on Logic Programming. MIT Press, Cambridge, Mass., 331-345.
[5]
CODISH, M., F~CHI, M., MARRIOTT, K., AND WINSBOROUGH, W. 1993. Efficient analysis of concurrent constraint logic programs. In Proceedings of the 20th International Colloquium on Automata, Languages, and Programming. Lecture Notes in Computer Science, vol. 700. Springer-Verlag, Berlin, 633-644.
[6]
CODOGNET, C., CODOGNET, P., AND CORSINI, M. 1990. Abstract interpretation for concurrent logic languages. In Proceedings of the 1990 North American Conference on Logic Programmtng. MIT Press, Cambridge, Mass., 215-232.
[7]
CORSINI, M., AND FIL~, G. 1989. A complete framework for the abstract interpretation of logic programs: Theory and application. Tech. Rep., Univ. di Padova, Italy.
[8]
COUSOT, P., AND COUSOT, R. 1992. Comparing the Galois connection and widening/narrowing approaches to abstract interpretation. In Proceedings of the 4th International Sympostum on Programming Language Implementation and Logic Programming. Lecture Notes in Computer Science, vol. 631. Springer-Verlag, Berlin, 269-295.
[9]
CousoT, P. AND COUSOT, R. 1977. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proceedings of the 4th ACM Symposium on the Principles of Programming Languages. ACM, New York, 238-252.
[10]
DART, P. 1991. On derived dependencies and connected databases. J. Logic Program. 11, 1 & 2 (July), 163-188.
[11]
LASSEZ, J.-L., MAHER, M. J., AND MARRIOTT, K. 1988. Unification revisited. In Foundattons of Deductive Databases and Logic Programming. Morgan Kaufmann, Los Altos, Calif., 587-625.
[12]
LLOYD, J.W. 1987. Foundations of Logic Programmmg. 2nd ed. Springer-Verlag, Berlin.
[13]
MARRIOTT, K., AND SCNDERGAARD, H. 1990. Analysis of constraint logic programs. In Proceedings of the 1990 North American Conference on Logic Programming. MIT Press, Cambridge, Mass., 531-547.
[14]
MARRIOTT, K., AND S~NDERGAARD, H. 1989. Semantics-based dataflow analysis of logic programs. In Information Processing 89. North-Holland, Amsterdam.
[15]
MARRIOTT, K., SCNDERGAARD, H., AND DART, P. 1990. A characterization of non-floundering logic programs. In Proceedings of the 1990 North American Conference on Logic Programming. MIT Press, Cambridge, Mass., 661-680.
[16]
NAISH, L. 1984. Heterogeneous SLD resolution. J. Logic Program. 1, 4.
[17]
PLOMER, L. 1990. Termination proofs for logic programs. In Lecture Notes in Artificml Intelligence. Vol. 446. Springer-Verlag, Berlin.
[18]
SATO, T., AND TAMAKI, H. 1984. Enumeration of success patterns in logic programs. Theor. Comput. Sci. 34, 227-240.
[19]
SHAPIRO, E. 1989. The family of concurrent logic programming languages. ACM Comput. Surv. 21, 3, 412-510.
[20]
STATMAN, R. 1985. Logical relations and the typed lambda calculus. Inf. Contr. 65, 85-97.
[21]
YARDENI, E., KLIGER, S., AND SHAPIRO, E. 1990. The languages FCP(:,?) and FCP(:). New Gen. Comput. 7, 2, 89-107.
[22]
YELICK, g., AND ZACHARY, J. 1989. Moded type systems for logic programming. In Proceedings of the 16th Annual ACM Symposium on Principles of Programming Languages. ACM, New York, 116-124.

Cited By

View all
  • (2019)An Assertion Language for Slicing Constraint Logic LanguagesLogic-Based Program Synthesis and Transformation10.1007/978-3-030-13838-7_9(148-165)Online publication date: 23-Feb-2019
  • (2017)Slicing Concurrent Constraint ProgramsLogic-Based Program Synthesis and Transformation10.1007/978-3-319-63139-4_5(76-93)Online publication date: 25-Jul-2017
  • (2014)Abstract interpretation of temporal concurrent constraint programsTheory and Practice of Logic Programming10.1017/S147106841300064115:03(312-357)Online publication date: 10-Feb-2014
  • Show More Cited By

Recommendations

Reviews

Marguerite Elizabeth Saacks Giguette

The authors consider the relationship between suspension analysis of concurrent logic programs, specifically FCP(:) programs, and abstract interpretations. This research paper formalizes the operational semantics of an FCP(:) program. Readers should be familiar with Lloyd [1] in order to understand the concepts presented in this discussion. The analyses consid er whether a program leads to a possible suspension, given the program and its initial state. The analyses are based on approximations of transition system semantics. This paper presents its discussion in a well-organized, complete way; it provides good references for this area of research. Its contributions to suspension analysis and transition system semantics are significant. The reader needs to be familiar with the concepts of operational semantics, suspension analysis, and transition system semantics.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Programming Languages and Systems
ACM Transactions on Programming Languages and Systems  Volume 16, Issue 3
May 1994
773 pages
ISSN:0164-0925
EISSN:1558-4593
DOI:10.1145/177492
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 May 1994
Published in�TOPLAS�Volume 16, Issue 3

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. abstract interpretation
  2. concurrent logic programming
  3. program analysis

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)37
  • Downloads (Last 6 weeks)7
Reflects downloads up to 18 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2019)An Assertion Language for Slicing Constraint Logic LanguagesLogic-Based Program Synthesis and Transformation10.1007/978-3-030-13838-7_9(148-165)Online publication date: 23-Feb-2019
  • (2017)Slicing Concurrent Constraint ProgramsLogic-Based Program Synthesis and Transformation10.1007/978-3-319-63139-4_5(76-93)Online publication date: 25-Jul-2017
  • (2014)Abstract interpretation of temporal concurrent constraint programsTheory and Practice of Logic Programming10.1017/S147106841300064115:03(312-357)Online publication date: 10-Feb-2014
  • (2012)Transforming floundering into successTheory and Practice of Logic Programming10.1017/S147106841200035X14:02(215-238)Online publication date: 30-Oct-2012
  • (2008)Inferring non-suspension conditions for logic programs with dynamic schedulingACM Transactions on Computational Logic10.1145/1352582.13525859:3(1-43)Online publication date: 12-Jun-2008
  • (2005)A semantic basis for termination analysis of logic programs and its realization using symbolic norm constraintsAlgebraic and Logic Programming10.1007/BFb0027001(31-45)Online publication date: 20-Jun-2005
  • (2005)Abstracting unification: A key step in the design of logic program analysesComputer Science Today10.1007/BFb0015257(406-425)Online publication date: 9-Jun-2005
  • (2005)A confluent calculus for concurrent constraint programming with guarded choicePrinciples and Practice of Constraint Programming — CP '9510.1007/3-540-60299-2_19(310-327)Online publication date: 1-Jun-2005
  • (2005)Compositional analysis for equational Horn programsAlgebraic and Logic Programming10.1007/3-540-58431-5_8(77-94)Online publication date: 30-May-2005
  • (2005)Efficient analysis of concurrent constraint logic programsAutomata, Languages and Programming10.1007/3-540-56939-1_108(633-644)Online publication date: 28-May-2005
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media