The compaction of acyclic terms

  • Gaétan Hains
Submitted Presentations
Part of the Lecture Notes in Computer Science book series (LNCS, volume 366)


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.


Implementation memory management systolic algorithm 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    A.Aho, J.Hopcroft & J.Ullman, The Design and Analysis of Computer Algorithms, Addison-Wesley, 1974.Google Scholar
  2. [2]
    P.Boizumault, PROLOG: L'implantation, Masson, 1988.Google Scholar
  3. [3]
    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
  4. [4]
    W.Brauer, On minimizing finite automata, Bulletin of the EATCS, no.35, June 1988.Google Scholar
  5. [5]
    M.Cosnard & M.Tchuente, Designing systolic algorithms by top-down analysis, Third International Conference on Supercomputing, Boston, 1988.Google Scholar
  6. [6]
    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
  7. [7]
    G.Hains, Parallel algorithms for free and associative-commutative unification, DPhil thesis, Oxford University, 1989.Google Scholar
  8. [8]
    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
  9. [9]
    J.E.Hopcroft & J.D.Ullman, Introduction to automata theory, languages, and computation, Addison-Wesley, 1979.Google Scholar
  10. [10]
    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
  11. [11]
    M.S. Paterson & M.N. Wegman, Linear unification, Journal of Computer and Systems Sciences 16, 158–167, 1978.Google Scholar
  12. [12]
    S.L.Peyton Jones, The Implementation of Functional Programming Languages, Prentice-Hall, 1987.Google Scholar
  13. [13]
    T.A.Standish, Data Structure Techniques, Addison-Wesley, 1980.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1989

Authors and Affiliations

  • Gaétan Hains
    • 1
  1. 1.Centre de Recherche Informatique de MontréalMontréalCanada

Personalised recommendations