both terms are used interchangeably in this paper

thus an extension of the standard WAM switching instructions is needed on the concrete level: either (as in the KCM [BBB+89]) add an additional argument to all three switching instructions, or (as in our approach) add one new instruction (set_index_number n; see appendix B) to change the value of an index register (IX) which is looked up by the switch instructions

mainly facts

c stands for constant and d for don't know

primitive deterministic is an extended definition of head deterministic which looks not only at the clause heads but also at the primitive instructions at the beginning of the bodies

see also appendices B and C.2.2

if a variable in the head is directly bound to a constant or structure in the body before any other subgoals, this information can also be used (e.g. in p(X) :- X = 5, q(6)); anyway, RELFUN's normalizer would move such body goals into the head (e.g. obtaining p(5) :- q(6))

side-effect free builtins (<,>,)

selectivity is the number of different constants and functors

and/2 and or/2 of the hash table are presented here in the opposite order of earlier examples, which if of course immaterial

in future DAXes layout will occasionally enforce copying; in our implementation, identical sub-DAXes are always shared (see [Ste92])

of course this constant could be easily changed

see section 11.1

and unrestricted

see section 11.1

the pruning can be influenced by the indexing :max-args <n> and indexing :max-depth <n> commands in RELFUN which are described in appendix A

a more efficient alternative to this transformation is implemented as part of RELFUN's compilation laboratory

source to source

source to code

cannot be changed by the user

cf. section 11 and appendix C.2.2

the only difference to standard PROLOG here being the use of square brackets instead of round parentheses for structures

an instruction inst(arg1, , argN) is internally written as (inst arg1 argN), i.e. in LISP syntax

these benchmark results are not very exact, since run-time was taken by hand (our emulator has no run-time measure predicate).

Michael Sintek - sintek@dfki.uni-kl.de