@inproceedings{d9190a78ced441059911b8bc01483297,
title = "Design and implementation of jump tables for fast indexing of logic programs",
abstract = "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. Although jump tables ensure that each transition can be done in constant time they are usually very sparse and hence are seldom used in implementations. We describe a novel method to construct dense jump tables for indexing automata. We present implementation results that show that our construction indeed yields jump tables that are dense enough to be practical. We also show that indexing automata that use jump tables based on our method, improve the overall performance of Prolog programs. We also provide experimental evidence that our method is a general technique for compressing transition tables of other finite state automata such as those used in scanners.",
author = "Steven Dawson and Ramakrishnan, \{C. R.\} and Ramakrishnan, \{I. V.\}",
note = "Publisher Copyright: {\textcopyright} Springer-Verlag Berlin Heidelberg 1995.; 7th International Symposium on Programming Languages: Implementations, Logics and Programs, PLILP 1995 ; Conference date: 20-09-1995 Through 22-09-1995",
year = "1995",
doi = "10.1007/BFb0026818",
language = "English",
isbn = "354060359X",
series = "Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)",
publisher = "Springer Verlag",
pages = "133--150",
editor = "Manuel Hermenegildo and Swierstra, \{S. Doaitse\}",
booktitle = "Programming Languages",
}