Parallelization by semantic detection of reductions

  • P. Jouvelot
Part of the Lecture Notes in Computer Science book series (LNCS, volume 213)


One of the best known techniques to compile sequential programs for multiprocessors is to detect the so called reduction operations. An example of such an operation is the sum of vector elements which can be evaluated under a pyramidal scheme using the associativity property of addition. A method to detect such operations in a PASCAL or FORTRAN-like programming language is presented. This detection and the corresponding modifications to the source programs are considered as non-standard denotational interpretations of the abstract syntax tree of the object programs. A by-product of this paper is to show how a denotational specification of a nontrivial application can directly lead to a running prototype, using here the ML programming language as an “executable specification language”.


Reduction Operation Abstract Syntax Symbolic State Symbolic Evaluation Denotational Semantic 


  1. Abe85a.
    Abelson and Sussman, Structure and Interpretation of Computer Programs, MIT Press (1985).Google Scholar
  2. All83a.
    J. R. Allen, K. Kennedy, C. Porterfield, and J. Warren, “Conversion of Control Dependence to Data Dependence,” POPL83, ACM (1983).Google Scholar
  3. Ber66a.
    A. J. Bernstein, “Analysis of Programs for Parallel Processing,” IEEE Trans. on Elec. Comp. 15, pp.757–763 (October 1966).Google Scholar
  4. Cou85a.
    G. Cousineau, “The ML Handbook,” (draft INRIA) (Mai 1985).Google Scholar
  5. Cou78a.
    P. Cousot, Methodes Iteratives de Construction de Points Fixes d'Operateurs Monotones sur un Treillis, Analyse Semantique des Programmes, U.S.M.G, Grenoble (1978).Google Scholar
  6. Dan82a.
    R. B. Dannenberg and G. W. Ernst, “Formal Program Verification Using Symbolic Execution,” IEEE Trans.on Soft.Eng. 8 (Janvier 1982).Google Scholar
  7. Don78a.
    V. Donzeau-Gouge, “Utilisation de la semantique denotationelle pour l'etude d'interpretations non-standard,” Rapport de Recherche 273, INRIA (Janvier 1978).Google Scholar
  8. Gor79a.
    M. J. C. Gordon, The Denotational Description of Programming Languages, Springer-Verlag (1979).Google Scholar
  9. Gor79b.
    M. J. C. Gordon and R. Milner, Edinburgh LCF, Springer-Verlag (1979).Google Scholar
  10. Hil85a.
    Hillis, The Connection Machine, MIT Press (1985).Google Scholar
  11. Jou85a.
    P. Jouvelot, Evaluation semantique des Conditions de Bernstein, MASI (Mars 1985).Google Scholar
  12. Jou85b.
    P. Jouvelot, ML: Un Langage de Maquettage ?, AFCET (Octobre 1985).Google Scholar
  13. Kuc79a.
    D. J. Kuck and D. A. Padua, High-Speed Multiprocessors and their Compilers, IEEE (1979).Google Scholar
  14. McI85a.
    K. McIsaac, “Pattern Matching Algebraic Identities,” SIGSAM Bull. 19 (Mai 1985).Google Scholar
  15. Nie85a.
    F. Nielson, “Program Transformations in a Denotational Setting,” TOPLAS, ACM (Juillet 1985).Google Scholar
  16. Sto77a.
    J. E. Stoy, Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory, MIT Press (1977).Google Scholar
  17. Suz77a.
    N. Suzuki and D. Jefferson, Verification Decidability of Presburger Array Programs, 1977.Google Scholar
  18. Ten76a.
    R. D. Tennent, “The Denotational Semantics of Programming Languages,” CACM 19 (Aout 1976).Google Scholar
  19. Ull84a.
    J. D. Ullman, Computational Aspects of VLSI, Computer Science Press (1984).Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • P. Jouvelot
    • 1
  1. 1.MASI, Université PARIS-VIFrance

Personalised recommendations