Hostname: page-component-74656f9884-npj9w Total loading time: 0 Render date: 2026-11-11T01:02:43.047Z Has data issue: false hasContentIssue false

Linear tabulated resolution based on Prolog control strategy

Published online by Cambridge University Press:  03 April 2001

YI-DONG SHEN
Affiliation:
Department of Computer Science, Chongqing University, Chongqing 400044, People's Republic of China (e-mail: ydshen@cs.ualberta.ca)
LI-YAN YUAN
Affiliation:
Department of Computing Science, University of Alberta, Edmonton, Alberta, Canada T6G 2H1 (e-mail: yuan@cs.ualberta.ca, you@cs.ualberta.ca)
JIA-HUAI YOU
Affiliation:
Department of Computing Science, University of Alberta, Edmonton, Alberta, Canada T6G 2H1 (e-mail: yuan@cs.ualberta.ca, you@cs.ualberta.ca)
NENG-FA ZHOU
Affiliation:
Department of Computer and Information Science, Brooklyn College, The City University of New York, New York, NY 11210-2889, USA (e-mail: zhou@sci.brooklyn.cuny.edu)
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the 'Save PDF' action button.

Infinite loops and redundant computations are long recognized open problems in Prolog. Two methods have been explored to resolve these problems: loop checking and tabling. Loop checking can cut infinite loops, but it cannot be both sound and complete even for function-free logic programs. Tabling seems to be an effective way to resolve infinite loops and redundant computations. However, existing tabulated resolutions, such as OLDT-resolution, SLG-resolution and Tabulated SLS-resolution, are non-linear because they rely on the solution-lookup mode in formulating tabling. The principal disadvantage of non-linear resolutions is that they cannot be implemented using a simple stack-based memory structure like that in Prolog. Moreover, some strictly sequential operators such as cuts may not be handled as easily as in Prolog. In this paper, we propose a hybrid method to resolve infinite loops and redundant computations. We combine the ideas of loop checking and tabling to establish a linear tabulated resolution called TP-resolution. TP-resolution has two distinctive features: (1) it makes linear tabulated derivations in the same way as Prolog except that infinite loops are broken and redundant computations are reduced. It handles cuts as effectively as Prolog; and (2) it is sound and complete for positive logic programs with the bounded-term-size property. The underlying algorithm can be implemented by an extension to any existing Prolog abstract machines such as WAM or ATOAM.

Information

Type
Research Article
Copyright
© 2001 Cambridge University Press