Weakest Specifunctions for BSP

This paper introduces a calculus of weakest specification for supporting reuse of established components in deriving a design (in the sense of formal methods). The weakest specifunction generalizes the notions of weakest prespecification and weakest parallel environment; but instead of calculating the weakest required component of a target specification, it calculates the weakest specification function whose value refines the target when applied to an established component. In particular it overcomes the restriction of those other calculi to taking merely one required component at a time. The theory of specifunctions is applied to a new weakest-design calculus in the context of BSP. The calculus is based on the par-seq specifunction which involves two required components: it places one established component in parallel with one required component and the result in sequence with another required component to meet a given specification. A calculus is provided for the par-seq specifunction and it is applied to the derivation of a distributed BSP algorithm for greatest common divisor.

[1]  Leslie G. Valiant,et al.  A bridging model for parallel computation , 1990, CACM.

[2]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[3]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[4]  Yifeng Chen,et al.  Logic of Global Synchrony , 2001, CONCUR.

[5]  David B. Skillicorn,et al.  Questions and Answers about BSP , 1997, Sci. Program..

[6]  Yifeng Chen Formal methods for global synchrony , 2001 .

[7]  C. A. R. Hoare,et al.  The Weakest Prespecification , 1987, Information Processing Letters.

[8]  Lei Chen,et al.  Algebraic Laws for BSP Programming , 1996, Euro-Par, Vol. II.

[9]  Edsger W. Dijkstra,et al.  Guarded commands, non-determinacy and a calculus for the derivation of programs , 1975, Language Hierarchies and Interfaces.