A Theory of State-based Parallel Programming: Part 1

This paper presents the first part of a theory for developing totally correct parallel programs. The emphasis of both specification and program is on the states, rather than actions, of the system. We stress the constructive approach in the development, by means of refinement and decomposition. A compositional proof system is investigated to support decomposition. It is shown to be sound in a computational model. Two examples are included to illustrate the compositionality of the proof system and the use of the methods in constructing an implementation.

[1]  Martín Abadi,et al.  The Existence of Refinement Mappings , 1988, LICS.

[2]  Leslie Lamport,et al.  Proving the Correctness of Multiprocess Programs , 1977, IEEE Transactions on Software Engineering.

[3]  Colin Stirling,et al.  A Generalization of Owicki-Gries's Hoare Logic for a Concurrent while Language , 1988, Theor. Comput. Sci..

[4]  C. A. R. Hoare,et al.  Laws of programming , 1987, CACM.

[5]  Bowen Alpern,et al.  Defining Liveness , 1984, Inf. Process. Lett..

[6]  Susan S. Owicki,et al.  A consistent and complete deductive system for the verification of parallel programs , 1976, STOC '76.

[7]  Eric C. R. Hehner,et al.  Predicative programming Part I , 1984, CACM.

[8]  C. A. R. Hoare,et al.  An Algebraic Approach to Verifiable Compiling Specification and Prototyping of the Procos Level 0 Programming Language , 1990 .

[9]  Cliff B. Jones,et al.  Developing methods for computer programs including a notion of interference , 1981 .

[10]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[11]  Cliff B. Jones,et al.  Tentative steps toward a development method for interfering programs , 1983, TOPL.

[12]  Jim Woodcock,et al.  Using VDM with Rely and Guarantee-Conditions - Experiences from a Real Project , 1988, VDM Europe.

[13]  Job Zwiers,et al.  Compositionality, Concurrency and Partial Correctness , 1989, Lecture Notes in Computer Science.

[14]  Krzysztof R. Apt,et al.  Countable nondeterminism and random assignment , 1986, JACM.

[15]  Krzysztof R. Apt,et al.  Ten Years of Hoare's Logic: A Survey Part II: Nondeterminism , 1984, Theor. Comput. Sci..

[16]  Carroll Morgan,et al.  The Refinement Calculus , 1994, NATO ASI PDC.

[17]  Patrick Cousot,et al.  A Language Independent Proof of the Soundness and Completeness of Generalized Hoare Logic , 1989, Inf. Comput..

[18]  Robert M. Keller,et al.  Formal verification of parallel programs , 1976, CACM.