Associative Concurrent Evaluation of Logic Programs

Abstract A general evaluation method for logic programs is presented based on the use of hash or associative (CA: content-addressable) memories for the variable environment and the database. The bindings are stored in the hash or CA memory, and accessed by the variable names and their “contexts.” Another hash or CA memory stores the subterms without variables in the form of “monocopy lists.” The method is an extension of that employed in the H -PROLOG system. Applications of the method are discussed both for serial depth-first evaluation and for heuristic (best-first) concurrent evaluation. In the heuristic evaluation, the processes share the common memories for the environments and the database. Systems employing this method dynamically distinguish local variables from global variables to economize the memory usage, and require no garbage collection cycle for the working memories and the databases.