This paper will attract the attention of researchers in the field of PROLOG-style interpreter engines. It describes three algorithms for the management of unification variables, requiring the binding (for variables that have been unified) and unbinding (for unsuccessful alternatives) of variable-value pairs. The algorithms are not new (viz., directory trees, hash windows, and variable importation), but the potential relevance of this paper is in the comparison that it provides between the algorithms. Unfortunately, these comparisons are made on the basis of too small a sample to be of any real value. The only program used to compare the algorithms is a permutation program, run on lists of 3, 4, 5, and 6 elements. The author claims to have tested the algorithms “on a number of simple problems”; why then weren’t the results of all these tests included in the comparison?
Three attributes of the algorithms are compared: execution speed, memory usage, and locality of reference. Neither of the first two comparisons yield any conclusions of significant note. The author himself comments that “the other algorithms can be optimized to be, probably, at least comparable with hash windows. . . .” The last comparison contains perhaps the most valuable contribution of the paper: The variable importation algorithm exhibited behavior that supports the use of virtual memory schemes. Knowledge of such behavior models is very useful to computer architects; but it would be more reassuring to know that such behavior occurs over a wider class of programs before designing an architecture to exploit it]
In short, the paper may attract more readers than it deserves. Those who do read it will not find much of value.