z-logo
Premium
Multistage indexing algorithms for speeding prolog execution
Author(s) -
And Ta Chen,
Ramakrishnan I. V.,
Ramesh R.
Publication year - 1994
Publication title -
software: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.437
H-Index - 70
eISSN - 1097-024X
pISSN - 0038-0644
DOI - 10.1002/spe.4380241202
Subject(s) - search engine indexing , modulo , unification , backtracking , computer science , salient , prolog , prime (order theory) , feature (linguistics) , algorithm , range (aeronautics) , theoretical computer science , programming language , mathematics , artificial intelligence , linguistics , philosophy , materials science , combinatorics , composite material
In a previous article we proposed a new and efficient indexing technique that utilizes all the functors in the clause‐heads and the goal. The salient feature of this technique is that the selected clause‐head unifies (modulo nonlinearity) with the goal. As a consequence, our technique results in sharper discrimination, fewer choice points and reduced backtracking. A naïve and direct implementation of our indexing algorithms considerably slowed down the execution speeds of a wide range of programs typically seen in practice. This is because it handled deep and shallow terms, terms with few indexable arguments, small and large procedures uniformly. To beneficially extend the applicability of our algorithms we need mechanisms that are ‘sensitive’ to term structures and size and complexity of procedures. We accomplish this in the v‐ALS compiler by carefully decomposing our indexing process into multiple stages. The operations performed by these stages increase in complexity ranging from first argument indexing to unification (modulo nonlinearity). Further the indexing process can be terminated at any stage if it is not beneficial to continue further. We have now completed the design and implementation of v‐ALS. Using it we have enhanced the performance of a broad range of programs typically encountered in practice. Our experience strongly suggests that indexing based on unification (modulo nonlinearity) is a viable idea in practice and that a broad spectrum of useful programs can realize all of its benefits.

This content is not available in your region!

Continue researching here.

Having issues? You can contact us here