On Termination of Meta-programs

  • Alexander Serebrenik
  • Danny De Schreye
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2250)


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].


Logic Program Logic Programming Proof Tree Termination Proof Normal Program 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    K. R. Apt. From Logic Programming to Prolog. Prentice-Hall Int. Series in Computer Science. Prentice Hall, 1997.Google Scholar
  2. 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. 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. 4.
    K. R. Apt and F. Turini, editors. Meta-Logics and Logic Programming. Logic Programming. The MIT Press, 1995.Google Scholar
  5. 5.
    T. Arts. Automatically proving termination and innermost normalisation of term rewriting systems. PhD thesis, Universiteit Utrecht, 1997.Google Scholar
  6. 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. 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. 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. 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.zbMATHCrossRefGoogle Scholar
  10. 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. 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. 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.MathSciNetGoogle Scholar
  13. 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. 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.CrossRefGoogle Scholar
  15. 15.
    N. Dershowitz and Z. Manna. Proving termination with multiset orderings. Communications of the ACM (CACM), 22(8):465–476, August 1979.zbMATHCrossRefMathSciNetGoogle Scholar
  16. 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. 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. 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. 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. 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. 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. 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.zbMATHCrossRefMathSciNetGoogle Scholar
  23. 23.
    D. Pedreschi and S. Ruggieri. Verification of meta-interpreters. Journal of Logic and Computation, 7(2):267–303, November 1997.zbMATHCrossRefMathSciNetGoogle Scholar
  24. 24.
    S. Ruggieri. Verification and validation of logic programs. PhD thesis, Universitá di Pisa, 1999.Google Scholar
  25. 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. 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
  27. 27.
    J.-G. Smaus. Modes and Types in Logic Programming. PhD thesis, University of Kent, 1999.Google Scholar
  28. 28.
    L. Sterling and E. Shapiro. The Art of Prolog. The MIT Press, 1994.Google Scholar
  29. 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. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Alexander Serebrenik
    • 1
  • Danny De Schreye
    • 1
  1. 1.Department of Computer ScienceHeverleeBelgium

Personalised recommendations