The compaction of acyclic terms
The compaction of acyclic terms is proposed as a dynamic memory management operation for distributed symbolic computation. Compaction is defined here as the minimisation of term graphs, to give maximal structure-sharing. A simple transformation is described to show this problem equivalent to the minimisation of finite automata.
When processing an object distributed among separate processes, substructures may be copied to reduce communication overheads. However, if accesses to the same object later become local (and sequential) it is more efficient to merge repeated structures. The need for a fast compaction algorithm therefore arises from the dynamic interplay of local vs global access, to recover structure-sharing after copying.
No sequential algorithm is known for compacting terms in linear time. Superlinear-time algorithms exist but suffer from significant overheads, which make them unsuitable for repeated dynamic use. As a practical solution a systolic algorithm for compaction is described, on an array of size equal to the number of input graph vertices.
KeywordsImplementation memory management systolic algorithm
Unable to display preview. Download preview PDF.
- A.Aho, J.Hopcroft & J.Ullman, The Design and Analysis of Computer Algorithms, Addison-Wesley, 1974.Google Scholar
- P.Boizumault, PROLOG: L'implantation, Masson, 1988.Google Scholar
- Boyer & Moore, The sharing of structure in theorem-proving programs, in B.Meltzer and D.Michie editors, Machine Intelligence, Edinburgh Univ. Press, 101–116, 1972.Google Scholar
- W.Brauer, On minimizing finite automata, Bulletin of the EATCS, no.35, June 1988.Google Scholar
- M.Cosnard & M.Tchuente, Designing systolic algorithms by top-down analysis, Third International Conference on Supercomputing, Boston, 1988.Google Scholar
- P.J. Downey, R. Sethi & R.E. Tarjan, Variations on the common subexpression problem, Journal of the ACM 27, no.4, 758–771, Oct. 1980.Google Scholar
- G.Hains, Parallel algorithms for free and associative-commutative unification, DPhil thesis, Oxford University, 1989.Google Scholar
- W.J. Hansen, Compact list representation: definition, garbage collection, and system implementation, Communications of the ACM 12, no.9, pp. 499–507, Sept. 1969.Google Scholar
- J.E.Hopcroft & J.D.Ullman, Introduction to automata theory, languages, and computation, Addison-Wesley, 1979.Google Scholar
- P.C.Kanellakis & P.Z.Revesz, On the relationship of congruence closure and unification, Brown Univ., Comp.Sc. Report no. CS-87-27, Nov. 1987.Google Scholar
- M.S. Paterson & M.N. Wegman, Linear unification, Journal of Computer and Systems Sciences 16, 158–167, 1978.Google Scholar
- S.L.Peyton Jones, The Implementation of Functional Programming Languages, Prentice-Hall, 1987.Google Scholar
- T.A.Standish, Data Structure Techniques, Addison-Wesley, 1980.Google Scholar