Automata-driven indexing of Prolog clauses

  • Authors:
  • R. Ramesh;I. V. Ramakrishnan;D. S. Warren

  • Affiliations:
  • Department of Computer Science, University of Texas at Dallas, Richardson, TX;Department of Computer Science, State University of New York at Stony Brook, Stony Brook, NY;Department of Computer Science, State University of New York at Stony Brook, Stony Brook, NY

  • Venue:
  • POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
  • Year:
  • 1989

Quantified Score

Hi-index 0.00

Visualization

Abstract

Indexing Prolog clauses is an important optimization step that reduces the number of clauses on which unification will be performed and can avoid the pushing of a choice point. It is quite desirable to increase the number of functors used in indexing as this can considerably reduce the size of the filtered set. However this can cause an enormous increase in running time if indexing is done naively. This paper describes a new technique for indexing that utilizes all the functors in a clause-head. More importantly, in spite of using all the functors, this technique is still able to quickly select relevant clause-heads at run time. This is made possible primarily by a finite-state automaton that guides the indexing process. The automaton is constructed at compile time by preprocessing all the clause-heads.