Detection and optimization of functional computations in Prolog

26Citations
Citations of this article
1Readers
Mendeley users who have this article in their library.
Get full text

Abstract

While the ability to simulate nondeterminism and return multiple outputs for a single input is a powerful and attractive feature of Prolog, it is expensive both in time and space. Since Prolog programs are very often functional, i.e. do not produce more than one distinct output for a single input, this overhead is especially undesirable. This paper describes how a program may be analyzed statically to determine which literals and predicates are functional, and how the program may then be optimized using this information. Our notion of “functionality” subsumes the notion of “determinacy” that has been considered by various researchers. Our algorithms are less reliant on features such as cut, and thus extend more easily to parallel execution strategies than others that have been proposed.

Cite

CITATION STYLE

APA

Debray, S. K., & Warren, D. S. (1986). Detection and optimization of functional computations in Prolog. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 225 LNCS, pp. 490–504). Springer Verlag. https://doi.org/10.1007/3-540-16492-8_97

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free