Skip to main content

On Termination of Meta-programs

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 2250))

Abstract

The term meta-programming refers to the ability of writing programs that have other programs as data and exploit their semantics [4]. The choice of logic programming as a basis for meta-programming offers a number of practical and theoretical advantages. One of them is the possibility of tackling critical foundation problems of meta-programming within a framework with a strong theoretical basis. Another is the surprising ease of programming. These reasons motivated an intensive research on meta-programming inside the logic programming community [4],[16],[19],[22],[23].

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. K. R. Apt. From Logic Programming to Prolog. Prentice-Hall Int. Series in Computer Science. Prentice Hall, 1997.

    Google Scholar 

  2. K. R. Apt and D. Pedreschi. Studies in Pure Prolog: Termination. In J. W. Lloyd, editor, Proc. Esprit Symp. on Comp. Logic, pages 150–176. Springer Verlag, 1990.

    Google Scholar 

  3. K. R. Apt and D. Pedreschi. Modular termination proofs for logic and pure prolog programs. In G. Levi, editor, Advances in Logic Programming Theory, pages 183–229. Oxford University Press, 1994.

    Google Scholar 

  4. K. R. Apt and F. Turini, editors. Meta-Logics and Logic Programming. Logic Programming. The MIT Press, 1995.

    Google Scholar 

  5. T. Arts. Automatically proving termination and innermost normalisation of term rewriting systems. PhD thesis, Universiteit Utrecht, 1997.

    Google Scholar 

  6. A. Bossi and N. Cocco. Preserving universal temination through unfold/fold. In G. Levi and M. Rodríguez-Artalejo, editors, Algebraic and Logic Programming, pages 269–286. Springer Verlag, 1994. LNCS 850.

    Google Scholar 

  7. A. Bowles and P. Wilk. Tracing requirements for multi-layered meta-programming. In H. Abramson and M. H. Rogers, editors, Meta-Programming in Logic Programming, pages 205–216. The MIT Press, 1989.

    Google Scholar 

  8. A. Brogi, P. Mancarella, D. Pedreschi, and F. Turini. Composition operators for logic theories. In J. W. Lloyd, editor, Proc. Esprit Symp. on Comp. Logic, pages 117–134. Springer Verlag, 1990.

    Google Scholar 

  9. M. Bruynooghe, D. De Schreye, and B. Martens. A general criterion for avoiding infinite unfolding during partial deduction. New Generation Computing, 11(1):47–79, 1992.

    Article  MATH  Google Scholar 

  10. F. Bueno, M. J. García de la Banda, and M. V. Hermenegildo. Effectiveness of global analysis in strict independence-based automatic parallelization. In M. Bruynooghe, editor, Logic Programming, Proc. of the 1994 Int. Symp., pages 320–336. MIT Press, 1994.

    Google Scholar 

  11. M. H. Cheng, M. H. van Emden, and P. A. Strooper. Complete sets of frontiers in logic-based program transformation. In H. Abramson and M. H. Rogers, editors, Meta-Programming in Logic Programming, pages 283–297. The MIT Press, 1989.

    Google Scholar 

  12. D. De Schreye and S. Decorte. Termination of logic programs: The never-ending story. J. Logic Programming, 19/20:199–260, May/July 1994.

    MathSciNet  Google Scholar 

  13. S. Decorte and D. De Schreye. Termination analysis: some practical properties of the norm and level mapping space. In J. Jaffar, editor, Proc. of the 1998 Joint Int. Conf. and Symp. on Logic Programming, pages 235–249. MIT Press, June 1998.

    Google Scholar 

  14. S. Decorte, D. De Schreye, and H. Vandecasteele. Constraint-based termination analysis of logic programs. ACM Transactions on Programming Languages and Systems (TOPLAS), 21(6):1137–1195, November 1999.

    Article  Google Scholar 

  15. N. Dershowitz and Z. Manna. Proving termination with multiset orderings. Communications of the ACM (CACM), 22(8):465–476, August 1979.

    Article  MATH  MathSciNet  Google Scholar 

  16. P. Hill and J. Gallagher. Meta-programming in logic programming. In D. M. Gabbay, C. Hogger, and J. Robinson, editors, Handbook of logic in Artificial Intelligence and Logic Programming, pages 421–498. Clarendon press, 1998. volume 5. Logic Programming.

    Google Scholar 

  17. P. Hill and J. Lloyd. Analysis of meta-programs. In H. Abramson and M. H. Rogers, editors, Meta-Programming in Logic Programming, pages 23–52. The MIT Press, 1989.

    Google Scholar 

  18. S. Hoarau. Inférer et compiler la terminaison des programmes logiques avec contraintes. PhD thesis, Université de La Réunion, 1999.

    Google Scholar 

  19. G. Levi and D. Ramundo. A formalization of metaprogramming for real. In D. S. Warren, editor, Logic Programming, Proceedings of the Tenth International Conference on Logic Programming, pages 354–373. MIT Press, 1993.

    Google Scholar 

  20. N. Lindenstrauss and Y. Sagiv. Automatic termination analysis of logic programs. n L. Naish, editor, Proc. of the Fourteenth Int. Conf. on Logic Programming, pages 63–77. MIT Press, July 1997.

    Google Scholar 

  21. B. Martens and D. De Schreye. Two semantics for definite meta-programs, using the non-ground representation. In K. Apt and F. Turini, editors, Meta-Logics and Logic Programming, pages 57–81. MIT Press, Cambridge, MA, 1995. ISBN: 0-262-01152-2.

    Google Scholar 

  22. B. Martens and D. De Schreye. Why untyped nonground metaprogramming is not (much of) a problem. Journal of Logic Programming, 22(1):47–99, January 1995.

    Article  MATH  MathSciNet  Google Scholar 

  23. D. Pedreschi and S. Ruggieri. Verification of meta-interpreters. Journal of Logic and Computation, 7(2):267–303, November 1997.

    Article  MATH  MathSciNet  Google Scholar 

  24. S. Ruggieri. Verification and validation of logic programs. PhD thesis, Universitá di Pisa, 1999.

    Google Scholar 

  25. A. Serebrenik and D. De Schreye. Non-transformational termination analysis of logic programs, based on general term-orderings. In K.-K. Lau, editor, Logic Based Program Synthesis and Transformation 10th International Workshop, Selected Papers, volume 2042 of Lecture Notes in Computer Science, pages 69–85. Springer Verlag, 2001.

    Google Scholar 

  26. A. Serebrenik and D. De Schreye. On termination of meta-programs. Technical Report CW 306, Departement Computerwetenschappen, K.U.Leuven, Leuven, Belgium, 2001. Available at http://www.cs.kuleuven.ac.be/publicaties/rapporten/CW2001.html.

  27. J.-G. Smaus. Modes and Types in Logic Programming. PhD thesis, University of Kent, 1999.

    Google Scholar 

  28. L. Sterling and E. Shapiro. The Art of Prolog. The MIT Press, 1994.

    Google Scholar 

  29. F. van Harmelen. A classification of meta-level architectures. In H. Abramson and M. H. Rogers, editors, Meta-Programming in Logic Programming, pages 103–122. The MIT Press, 1989.

    Google Scholar 

  30. S. Verbaeten. Static verification of compositionality and termination for logic programming languages. PhD thesis, Department of Computer Science, K.U.Leuven, Leuven, Belgium, June 2000. v+265+xxvii.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Serebrenik, A., De Schreye, D. (2001). On Termination of Meta-programs. In: Nieuwenhuis, R., Voronkov, A. (eds) Logic for Programming, Artificial Intelligence, and Reasoning. LPAR 2001. Lecture Notes in Computer Science(), vol 2250. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45653-8_36

Download citation

  • DOI: https://doi.org/10.1007/3-540-45653-8_36

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42957-9

  • Online ISBN: 978-3-540-45653-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics