On the expressivity of a weakest precondition calculus for a simple data-parallel programming language (short version)

  • Luc Bougé
  • Yann Le Guyadec
  • Gil Utard
  • Bernard Virot
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 854)


We present a weakest preconditions calculus à la Dijkstra for a small common kernel of existing data-parallel languages. We use two-part assertions, where the current extent of parallelism is specified by a separate boolean vector expression. Our main contribution is concerned with the conditioning construct where which modifies the current extent of parallelism. We prove that the weakest (strict) preconditions of a where block is definable by an assertion as soon as its body is. This is not the case with its weakest liberal preconditions. This sheds a new light on the deep semantic nature of the data-parallel conditioning construct.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    K.R. Apt and E.R. Olderog. Verification of Sequential and Concurrent Programs. Text and Monographs in Computer Science. Springer Verlag, 1990.Google Scholar
  2. 2.
    L. Bougé, Y. Le Guyadec, G. Utard, and B. Virot. On the expressivity of a weakest precondition calculus for a simple data-parallel programming language (extended version). Technical report, LIFO: RR94-07, Université d'Orléans, and LIP: RR94-12, ENS Lyon, April 1994.Google Scholar
  3. 3.
    L. Bougé, Y. Le Guyadec, G. Utard, and B. Virot. A proof system for a simple data-parallel programming language. In C. Girault, editor, Proc. of the IFIP WG10.3 Int. Conf. on Application in Parallel and Distributed Computing, Caracas, Vénézuela, April 1994. Elsevier.Google Scholar
  4. 4.
    L. Bougé and J.-L. Levaire. Control structures for data-parallel SIMD languages: semantics and implementation. FGCS, 8:363–378, 1992.Google Scholar
  5. 5.
    M. Clint and K.T. Narayana. On the completeness of a proof system for a synchronous parallel programming langage. In Third Conf. Found. Softw. Techn. and Theor. Comp. Science, Bangalore, India, December 1983.Google Scholar
  6. 6.
    E.W. Dijkstra. A Discipline of Programming. Prentice-Hall, 1976.Google Scholar
  7. 7.
    High Performance Fortran Forum. High Performance Fortran language specification (draft version). CITI/CRPC, Rice Univ., Houston, January 1993. Version 1.0 Draft.Google Scholar
  8. 8.
    J. Gabarró and R. Gavaldà. An approach to correctness of data parallel algorithms. Technical Report LSI-91-19, Univ. Politécnica de Catalunya, October 1991. To appear in Journ. of Parallel and Distr. Computing, 1994.Google Scholar
  9. 9.
    M.J.C. Gordon. Programming Language Theory and its Implementation. Int. Series in Comp. Sciences. Prentice Hall, 1988.Google Scholar
  10. 10.
    MasPar Computer Corporation, Sunnyvale CA. Maspar Parallel Application Language Reference Manual, 1990.Google Scholar
  11. 11.
    N. Paris. HyperC specification document. Technical Report 93-1, HyperParallel Technologie, 1993.Google Scholar
  12. 12.
    A. Stewart. An axiomatic treatment of SIMD assignment. Bit, 30:70–82, 1990.Google Scholar
  13. 13.
    Thinking Machine Corporation, Cambridge MA. C * programming guide, 1990.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Luc Bougé
    • 1
  • Yann Le Guyadec
    • 2
  • Gil Utard
    • 1
  • Bernard Virot
    • 2
  1. 1.LIP, ENS LyonLyon Cedex 07France
  2. 2.LIFOUniv. OrléansOrléans Cedex 2France

Personalised recommendations