MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Towards a Logic Programming Methodology based on Higher-order Predicates (1997) [10 citations — 6 self]

Download:
Download as a PDF | Download as a PS
by Andreas Hamfelt, Jrgen Fischer Nilsson
J. New Generation Computing
http://www.dis.uu.se/~hamfelt/pub/NGCRevised.ps
Add To MetaCart

Abstract:

This paper outlines a logic programming methodology which applies standardized logic program recursion forms afforded by a system of general purpose recursion schemes. The recursion schemes are conceived of as quasi higher-order predicates which accept predicate arguments, thereby representing parameterized program modules. This use of higher-order predicates is analogous to higher-order functionals in functional programming. However, these quasi higher-order predicates are handled by a metalogic programming technique within ordinary logic programming. Some of the proposed recursion operators are actualizations of mathematical induction principles (e.g. structural induction as generalization of primitive recursion). Others are heuristic schemes for commonly occurring recursive program forms. The intention is to handle all recursions in logic programs through the given repertoire of higher-order predicates. We carry out a pragmatic feasibility study of the proposed recursion operators with respect to the corpus of common textbook logic programs. This pragmatic investigation is accompanied with an analysis of the theoretical expressivity. The main theoretical results concerning computability are (1) Primitive recursive functions can be re-expressed in logic programming by predicates defined solely by non-recursive clauses augmented with a fold recursion predicate akin to the fold operators in functional programming. (2) General recursive functions can be re-expressed likewise since fold allows re-expression of a linrec recursion predicate facilitating linear, unbounded recursion. Keywords: Higher-order and metalogic programming; recursion schemes; composition, parameterization, and modularization of logic programs.

Citations

68 Termination Proofs for Logic Programs – Plumer - 1988
21 Basic Prolog Schemata – Gegg-Harrison - 1989
18 Inductive Metalogic Programming – Hamfelt, Nilsson - 1994
8 Refinement strategies for inductive learning of simple prolog programs – Kirschenbaum, Sterling - 1991
6 On Warren's Method for Functional Programming – Cheng, Emden, et al. - 1990
3 Polymorphic Higher-order Programming – Hanus - 1989
1 Logic Programmming Synthesis – Deville - 1994
1 Reddy: Higher-Order Aspects of Logic programming – S - 1993