Efficient storage reuse of aggregates in single assignment languages

  • Zhonghua Li
  • Chris C. Kirkham
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1060)


The storage reuse of aggregates is a key problem in implementing single assignment languages. In this paper, on the basis of a typical subset of the single assignment language SISAL, we analyze the inherent limits of storage reuse and define what the maximal storage reuse is. We propose an efficient method of achieving storage reuse, which is of polynomial complexity and linear in common cases. It achieves the maximal storage reuse for an extensive program class into which all common benchmark programs fall. We also show that no general method can guarantee the maximal storage reuse for programs outside the class. In this case, our method can choose the most likely operation to reuse the storage of an aggregate or a set of shared aggregates.


Input Port Dependency Cycle Dataflow Graph Aggregate Cluster Aggregate Parameter 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    A. Bloss. Update Analysis and Efficient Implementation of Function Aggregates. In The 4th Int. Conf. on Functional Programming Language, and Computer Architecture, pages 26–38, 1989.Google Scholar
  2. 2.
    D. C. Cann. Compilation Techniques for High Performance Applicative Computation. PhD thesis, Computer Science Department, Colorado State University, 1989.Google Scholar
  3. 3.
    D.C. Cann. Retire Fortran? A Debate Rekindled. CACM, 35(8):81–89, Aug 1992.Google Scholar
  4. 4.
    K. Gopinath. Copy elimination in single assignment languages. PhD thesis, Computer System Laboratory, Stanford University, 1989.Google Scholar
  5. 5.
    Z. Li and C. Kirkham. Efficient Implementation of Aggregates in United Functions and Objects. In 33rd ACM Southeast Conference, pages 73–82, Mar. 95.Google Scholar
  6. 6.
    J. R. McGraw, S.K. Skedzielewski, S. J. Allan, R. R. Oldehoeft, J. Glauert, C. C. Kirkham, W. Noyce, and R. Thomas. SISAL: Streams and Iteration in a Single Assignment Language. Lawrence Livermore National Laboratory, reference manual 1.2, manual m-146, rev. first edition, 1985.Google Scholar
  7. 7.
    A. V. Sastry, W. Clinger, and Z. Ariola. Order-of-evaluation Analysis for Destructive Updates in Strict Functional Languages with Flat Aggregates. In the 6th Int. Conf. on Functional Programming Languages and Computer Architectures, 1993.Google Scholar
  8. 8.
    S. K. Skedzielewski and M. L. Welcome. Dataflow Graph Optimization in IF1. In J-P. Jouannaud, editor, Functional Programming Languages and Computer Architecture, pages 17–34. Springer-Verlag, NY, November 1985.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Zhonghua Li
    • 1
  • Chris C. Kirkham
    • 1
  1. 1.Department of Computer ScienceManchester UniversityManchesterUK

Personalised recommendations