Skip to main content

Localizing and Explaining Reasons for Non-terminating Logic Programs with Failure-Slices

  • Conference paper
Book cover Principles and Practice of Declarative Programming (PPDP 1999)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1702))

Abstract

We present a slicing approach for analyzing logic programs with respect to non-termination. The notion of a failure-slice is presented which is an executable reduced fragment of the program. Each failure-slice represents a necessary termination condition for the program. If a failure-slice does not terminate it can be used as an explanation for the non-termination of the whole program. To effectively determine useful failure-slices we combine a constraint based static analysis with the dynamic execution of actual slices. The current approach has been integrated into a programming environment for beginners. Further, we show how our approach can be combined with traditional techniques of termination analysis.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bol, R.N.: Loop Checking in Logic Programming. Thesis, Univ. Amsterdam (1991)

    Google Scholar 

  2. Byrd, L.: Understanding the control flow of Prolog programs. In: Logic Programming Workshop, Debrecen, Hungary (1980)

    Google Scholar 

  3. Carlsson, M., Ottosson, G., Carlson, B.: An Open-Ended Finite Domain Constraint Solver. In: Glaser, H., Hartel, P., Kuchen, H. (eds.) PLILP 1997. LNCS, vol. 1292, pp. 191–206. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  4. Deransart, P., Maluszynski, J.: A Grammatical View of Logic Programming. MIT-Press, Cambridge (1993)

    Google Scholar 

  5. Gyimothy, T., Paakki, J.: Static slicing of logic programs. In: Ducasse, M. (ed.) AADEBUG 1995. IRISA-CNRS, pp. 87–103 (1995)

    Google Scholar 

  6. O’Keefe, R.A.: The Craft of Prolog. In: Plümer, L. (ed.) Termination Proofs for Logic Programs. LNCS, vol. 446. Springer, Heidelberg (1990)

    Google Scholar 

  7. Plümer, L. (ed.): Termination Proofs for Logic Programs. LNCS (LNAI), vol. 446. Springer, Heidelberg (1990)

    MATH  Google Scholar 

  8. Vasak, T., Potter, J.: Characterization of Termination Logic Programs, IEEE SLP, pp. 140–147 (1986)

    Google Scholar 

  9. Mesnard, F.: Inferring Left-terminating Classes of Queries for Constraint Logic Programs. In: Maher, M. (ed.) JICSLP 1996, pp. 7–21. MIT-Press, Cambridge (1996)

    Google Scholar 

  10. Mesnard, F., Hoarau, S.: A tabulation algorithm for CLP. In: Proc. of the 1st International Workshop on Tabling in Logic Programming, Leuven (1997) Revised report www.univreunion.fr/~gcc

  11. Neumerkel, U.: Mathematische Logik und logikorientierte Programmierung, Skriptum zur Laborübung (1993–1997)

    Google Scholar 

  12. Neumerkel, U.: Teaching Prolog and CLP. Tutorial. PAP (1995) Paris, 1995 and ICLP 1997 Leuven (1997)

    Google Scholar 

  13. Neumerkel, U.: GUPU: A Prolog course environment and its programming methodology. In: Fuchs, N., Geske, U. (eds.) Proc. of the Poster Session at JICSLP 1996, GMD-Studien Nr. 296, Bonn (1996)

    Google Scholar 

  14. Schoenig, S., Ducassé, M.: A Backward Slicing Algorithm for Prolog. In: Cousot, R., Schmidt, D.A. (eds.) SAS 1996. LNCS, vol. 1145, pp. 317–331. Springer, Heidelberg (1996)

    Google Scholar 

  15. Weiser, M.: Programmers Use Slices When Debugging. CACM 25(7), 446–452 (1982)

    Google Scholar 

  16. Weiser, M.: Program Slicing. IEEE TSE 10(4), 352–357 (1984)

    Google Scholar 

  17. Zhao, J., Cheng, J., Ushijima, K.: Literal Dependence Net and Its Use in Concurrent Logic Programming Environment. In: Proc. Workshop on Parallel Logic Programming FGCS 1994, Tokyo, pp. 127–141 (1994)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Neumerkel, U., Mesnard, F. (1999). Localizing and Explaining Reasons for Non-terminating Logic Programs with Failure-Slices. In: Nadathur, G. (eds) Principles and Practice of Declarative Programming. PPDP 1999. Lecture Notes in Computer Science, vol 1702. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10704567_20

Download citation

  • DOI: https://doi.org/10.1007/10704567_20

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66540-3

  • Online ISBN: 978-3-540-48164-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics