Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

Abstract

Proving termination of programs is important in any approach to program development. In logic programming, where the logic and the control component of a program can very easily be dealt with in two separate phases of the development, the termination issue is solely addressed in the second phase. Both formal, theoretical frameworks for reasoning about termination, and automatic techniques for termination analysis have recently obtained considerable attention in the logic programming community. Unfortunately, in current work, these two types of approaches to termination have been rather orthogonal. It would be desirable if automatic techniques could rely directly on general frameworks for their correctness proofs.

We recently presented a new, practical framework for termination analysis of definite logic programs with respect to call patterns. In the current paper, we describe an automated technique, which is directly based on the framework. The main advantages are: the generality of the approach (analysis can be performed for any given set of top-level goals), the clear theoretical underpinning provided by the framework and full automation..

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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.

Similar content being viewed by others

References

  1. K.R. Apt and M. Bezem. Acyclic programs. New Generation Computing, 9: 335–363, 1991.

    Article  Google Scholar 

  2. K.R. Apt and D. Pedreschi. Studies in pure Prolog: termination. In Proceedings Esprit symposium on computational logic, pages 150–176, Brussels, November 1990. Springer-Verlag.

    Google Scholar 

  3. K.R. Apt and D. Pedreschi. Proving termination of general Prolog programs. In Proceedings International Conference on Theoretical Aspects of Computer Science, Sendai, Japan, 1991.

    Google Scholar 

  4. M. Bezem. Characterizing termination of logic programs with level mappings. In Proceedings NACLP’89y pages 69–80, 1989.

    Google Scholar 

  5. BIM. Prolog by BIM release 3.0.

    Google Scholar 

  6. A. Bossi, N. Cocco, and M. Fabris. Norms on terms and their use in proving universal termination of a logic program. Technical Report 4/29, CNR, Department of Mathematics, University of Padova, March 1991.

    Google Scholar 

  7. D. De Schreye and K. Verschaetse. Termination analysis of definite logic programs with respect to call patterns. Technical Report CW 138, Department Computer Science, K.U.Leuven, January 1992.

    Google Scholar 

  8. D. De Schreye, K. Verschaetse, and M. Bruynooghe. A framework for analysing the termination of definite logic programs with respect to call patterns. In Proceedings FGCS’92, Tokyo, June 1992.

    Google Scholar 

  9. S.K. Debray. Static inference of modes and data dependencies in logic programs. ACM transactions on programming languages and systems, ll(3): 418–450, July 1989.

    Google Scholar 

  10. Y. Deville. Logic Programming: Systematic Program Development Addison-Wesley, 1990.

    Google Scholar 

  11. M. Falaschi, G. Levi, M. Martelli, and C. Palamidessi. Declarative modeling of the operational behaviour of logic languages. Theoretical Computer Science, 69 (3): 289–318, 1989.

    Article  MathSciNet  MATH  Google Scholar 

  12. G. Janssens and M. Bruynooghe. Deriving descriptions of possible values of program variables by means of abstract interpretation. Technical Report CW 107, Department of Computer Science, K.U.Leuven, March 1990. To appear in Journal of Logic Programming, in print.

    Google Scholar 

  13. R.A. Kowalski. Algorithm = logic + control. Communications of the ACM, 22: 424–431, 1979.

    Article  MATH  Google Scholar 

  14. J.W. Lloyd and J.C. Shepherdson. Partial evaluation in logic programming. Journal of Logic Programming, 11 (3 & 4): 217–242, October/November 1991.

    MathSciNet  MATH  Google Scholar 

  15. L. Naish. Negation and control in Prolog. Lecture Notes in Artificial Intelligence 238. Springer-Verlag, 1986.

    Google Scholar 

  16. L. Plumer. Termination proofs for logic programs. Lecture Notes in Artificial Intelligence 446. Springer-Verlag, 1990.

    Google Scholar 

  17. ProloglA. Prolog IIIt release 1.1.

    Google Scholar 

  18. K. Sohn and A. Van Gelder. Termination detection in logic programs using argument sizes. In Proceedings 10th symposium on principles of database systems, pages 216–226. Acm Press, May 1991.

    Google Scholar 

  19. J.D. Ullman and A. Van Gelder. Efficient tests for top-down termination of logical rules. Journal ACM, 35 (2): 345–373, April 1988.

    Article  Google Scholar 

  20. K. Verschaetse and D. De Schreye. Automatic derivation of linear size relations. Technical Report CW 139, Department Computer Science, K.U.Leuven, January 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag London

About this chapter

Cite this chapter

Verschaetse, K., Decorte, S., De Schreye, D. (1993). Automatic Termination Analysis. In: Lau, KK., Clement, T.P. (eds) Logic Program Synthesis and Transformation. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3560-9_12

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-3560-9_12

  • Publisher Name: Springer, London

  • Print ISBN: 978-3-540-19806-2

  • Online ISBN: 978-1-4471-3560-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics