Static Inference of Modes and Data Dependencies in Logic Programs

Research output: Contribution to journalArticlepeer-review

77 Scopus citations


Mode and data dependency analyses find many applications in the generation of efficient executable code for logic programs. For example, mode information can be used to generate specialized unification instructions where permissible, to detect determinacy and functionality of programs, generate index structures more intelligently, reduce the amount of runtime tests in systems that support goal suspension, and in the integration of logic and functional languages. Data dependency information can be used for various source-level optimizing transformations, to improve backtracking behavior and to parallelize logic programs. This paper describes and proves correct an algorithm for the static inference of modes and data dependencies in a program. The algorithm is shown to be quite efficient for programs commonly encountered in practice.

Original languageEnglish (US)
Pages (from-to)418-450
Number of pages33
JournalACM Transactions on Programming Languages and Systems (TOPLAS)
Issue number3
StatePublished - Jul 1 1989
Externally publishedYes


  • Dataflow analysis
  • Prolog
  • data dependency
  • mode
  • static inference

ASJC Scopus subject areas

  • Software

Cite this