Design and Implementation of Jump Tables for Fast Indexing of Logic Programs

The principal technique for enhancing the speed of clause resolution in logic programming languages, such as Prolog, is indexing. Given a goal, the primary objective of indexing is to quickly eliminate clauses whose heads do not unify with the goal. Efforts at maximizing the performance of indexing automata have focused almost exclusively on constructing them with small depth, which in turn translates into making fewer transitions. Performance of an automata also critically depends on its ability to make each transition efficiently. This is a problem that has largely been ignored and constitutes the topic of this paper.

[1]  Jim Christian,et al.  Fast Knuth-Bendix Completion: Summary , 1989, International Conference on Rewriting Techniques and Applications.

[2]  I. V. Ramakrishnan,et al.  Automata-driven indexing of Prolog clauses , 1989, POPL '90.

[3]  James R. Bell A Compression Method for Compiler Precedence Tables , 1974, IFIP Congress.

[4]  János Komlós,et al.  Storing a sparse table with O(1) worst case access time , 1982, 23rd Annual Symposium on Foundations of Computer Science (sfcs 1982).

[5]  Mats Carlsson,et al.  Freeze, Indexing, and Other Implementation Issues in the WAM , 1987, ICLP.

[6]  Timothy J. Hickey,et al.  Global Compilation of Prolog , 1989, J. Log. Program..

[7]  I. V. Ramakrishnan,et al.  Adaptive Pattern Matching , 1992, SIAM J. Comput..

[8]  Ehud Shapiro,et al.  From Decision Trees to Decision Graphs , 1990, NACLP.

[9]  Peter Dencker,et al.  Optimization of parser tables for portable compilers , 1984, TOPL.

[10]  I. V. Ramakrishnan,et al.  Multistage indexing algorithms for speeding prolog execution , 1994, Softw. Pract. Exp..

[11]  Steven Skiena,et al.  Unification factoring for efficient execution of logic programs , 1995, POPL '95.

[12]  Alfred V. Aho,et al.  Principles of Compiler Design , 1977 .

[13]  Lee Naish,et al.  NUA-Prolog: An Extension to the WAM for Parallel Andorra , 1991, ICLP.

[14]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[15]  R. Nigel Horspool,et al.  Practical Perfect Hashing , 1985, Comput. J..