Functional Computations in Logic Programs

Saumya K. Debray, David S. Warren

Research output: Contribution to journalArticlepeer-review

46 Scopus citations


Although the ability to simulate nondeterminism and to compute multiple solutions for a single query is a powerful and attractive feature of logic programming languages, it is expensive in both time and space. Since programs in such languages are very often functional, that is, they do not produce more than one distinct solution for a single input, this overhead is especially undesirable. This paper describes how programs 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 algorithm is less reliant on language features such as the cut, and thus extends more easily to parallel execution strategies, than others that have been proposed.

Original languageEnglish (US)
Pages (from-to)451-481
Number of pages31
JournalACM Transactions on Programming Languages and Systems (TOPLAS)
Issue number3
StatePublished - Jul 1 1989


  • Dataflow analysis
  • determinancy
  • functional dependency

ASJC Scopus subject areas

  • Software


Dive into the research topics of 'Functional Computations in Logic Programs'. Together they form a unique fingerprint.

Cite this