Automatic program restructuring for high-speed computation

  • D. J. Kuck
Matching The Structure Of Computations And Machine Architecture
Part of the Lecture Notes in Computer Science book series (LNCS, volume 111)


This paper discusses program transformations to allow traditional programming languages to be used on a variety of architectures. A uniform framework is presented in which various array and multiple-scalar machines are all special cases. The methods are implemented in the Parafrase system, which can be used for machine design as well as compiler design studies.


Dependence Graph Assignment Statement Graph Transformation Boolean Expression Source Language 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AbKL79]
    W. Abu-Sufah, D. Kuck, and D. Lawrie, "Automatic Program Transformations for Virtual Memory Computers," Proc. of the 1979 National Computer Conf., pp. 969–974, June 1979.Google Scholar
  2. [AhU173]
    A. V. Aho and J. W. Ullman, The Theory of Parsing, Translation and Compiling, Vol. 2, Prentice-Hall, Englewood Cliffs, New Jersey, 1973.Google Scholar
  3. [BaGK80]
    U. Banerjee, D. Gajski, and D. Kuck, "Array Machine Control Units for Loops Containing IFs," Proc. of the 1980 International Conf. on Parallel Processing, Harbor Springs, Michigan, pp. 28–36, Aug. 1980.Google Scholar
  4. [BaSm76]
    F. Baskett and A. J. Smith, "Interference in Multiprocessor Computer Systems with Interleaved Memory," Comm. of the ACM, Vol. 19, No. 6, pp. 327–334, June 1976.zbMATHCrossRefGoogle Scholar
  5. [Batc68]
    K. E. Batcher, "STARAN Parallel Processor System Hardware," AFIPS Spring Joint Computer Conf., Vol. 32, pp. 307–315, 1968.Google Scholar
  6. [ChKL77]
    D. Chang, D. J. Kuck, and D. H. Lawrie, "On the Effective Bandwidth of Parallel Memories," IEEE Trans. on Computers, Vol. C-26, No. 5, pp. 480–490, May 1977.Google Scholar
  7. [Davi72]
    E. W. Davis, Jr., "Concurrent Processing of-Conditional Jump Trees," Compcon 72, IEEE Computer Society Conf. Proc., pp. 279–281, Sept. 1972.Google Scholar
  8. [KBCD74]
    D. J. Kuck, P. Budnik, S. C. Chen, E. Davis, Jr., J. Han, P. Kraska, D. Lawrie, Y. Muraoka, R. Strebendt, and R. Towle, "Measurements of Parallelism in Ordinary FORTRAN Programs," IEEE Computer, Vol. 7, No. 1, pp. 37–46, Jan. 1974.Google Scholar
  9. [KKPL81]
    D. J. Kuck, R. H. Kuhn, D. A. Padua, B. Leasure, and M. Wolfe, "Dependence Graphs and Compiler Optimizations," Proc. of the 8th ACM Symp. on Principles of Programming Languages, Williamsburg, Virginia, pp. 207–218, Jan. 1981.Google Scholar
  10. [KKLW80]
    D. J. Kuck, R. H. Kuhn, B. Leasure, and M. Wolfe, "The Structure of an Advanced Vectorizer for Pipelined Processors," Proc. of COMPSAC 80, The 4th International Computer Software and Applications Conf., pp. 709–715, Oct. 1980.Google Scholar
  11. [Kuck78]
    D. J. Kuck, The Structure of Computers and Computations, Vol. I, John Wiley & Sons, Inc., New York, 1978.Google Scholar
  12. [Kuck80]
    D. J. Kuck, "High-Speed Machines and Their Compilers," Proc. of the CREST Parallel Processing Systems Course, Loughborough University of Technology, Sept. 1980.Google Scholar
  13. [Kuhn79]
    R. H. Kuhn, "Fast Evaluation of Arbitrary Decision Trees," Proc. of the International Conf. on Parallel Processing, pp. 267–268, Aug. 1979.Google Scholar
  14. [Kuhn80]
    R. H. Kuhn, "Efficient Mapping of Algorithms to Single-Stage Interconnections," Proc. of the International Symp. on Computer Architecture, La Baule, France, pp. 182–189, May 1980.Google Scholar
  15. [KuMC72]
    D. J. Kuck, Y. Muraoka, and S. C. Chen, "On the Number of Operations Simultaneously Executable in FORTRAN-Like Programs and Their Resulting Speed-Up," IEEE Trans. on Computers, Vol. C-21, pp. 1293–1310, Dec. 1972.MathSciNetGoogle Scholar
  16. [KuPa79]
    D. J. Kuck and D. A. Padua, "High-Speed Multiprocessors and Their Compilers," Proc. of the 1979 International Conf. on Parallel Processing, pp. 5–16, Aug. 1979.Google Scholar
  17. [Lamp75]
    L. Lamport, "The Parallel Execution of DO Loops," Comm. of the ACM, Vol. 17, pp. 83–93, 1974.zbMATHCrossRefMathSciNetGoogle Scholar
  18. [LaVo80]
    D. Lawrie and C. Vora, "The Prime Memory System for Array Access," Proc. of the 1980 International Conf. on Parallel Processing, pp. 81–90, Aug. 1980.Google Scholar
  19. [PaKL80]
    D. A. Padua, D. J. Kuck, and D. H. Lawrie, "High-Speed Multiprocessors and Compilation Techniques," Special Issue on Parallel Processing, IEEE Trans. on Computers, Vol. C-29, No. 9, pp. 763–776, Sept. 1980.Google Scholar
  20. [Sieg80]
    H. J. Siegel, Ed., Proceedings of the Workshop on Interconnection Networks, Lafayette, Indiana, April 1980.Google Scholar
  21. [Swan72]
    L. A. Swanson, "Simulation of a Tree Processor," M.S. thesis, University of Illinois at Urbana-Champaign, Dept. of Computer Science Rpt. No. 503, Jan. 1972.Google Scholar
  22. [VaZi78]
    T. Vanaken and G. Zick, "The X-Pipe: A Pipeline for Expression Trees," Proc. of the 1978 International Conf. on Parallel Processing, pp. 238–245, Aug. 1978.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1981

Authors and Affiliations

  • D. J. Kuck
    • 1
  1. 1.Department of Computer ScienceUniversity of Illinois at Urbana-ChampaignUrbana

Personalised recommendations