Parallel Programs with Shared Variables

  • Krzysztof R. Apt
  • Ernst-Rüdiger Olderog
Part of the Texts and Monographs in Computer Science book series (MCS)


Disjoint parallelism is a rather restricted form of concurrency. In applications, concurrently operating components often share resources, such as a common data base, a line printer or a data bus. Sharing is necessary when resources are too costly to have one copy for each component, as in the case of a large data base. Sharing is also useful to establish communication between different components, as in the case of a data bus. This form of concurrency can be modeled by means of parallel programs with shared variables, variables that can be changed and read by several components.


Auxiliary Variable Parallel Program Shared Variable Proof System Parallel Composition 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [ABO90]
    K.R. Apt, F.S. de Boer, and E.-R. Olderog. Proving termination of parallel programs. In W.H.J. Feijen, A.J.M. van Gasteren, D. Gries, and J. Misra, editors, Beauty is our Business, A Birthday Salute to Edsger W. Dijkstra, pages 0–6, New York, 1990. Springer-Verlag.Google Scholar
  2. [AM71]
    E. Ashcroft and Z. Manna. Formalization of properties of parallel programs. Machine Intelligence, 6: 17–41, 1971.MathSciNetMATHGoogle Scholar
  3. [Bak89]
    R.J.R. Back. A method for refining atomicity in parallel algorithms. In PARLE Conference on Parallel Architectures and Languages Europe,pages 199–216, New York, 1989. Lecture Notes in Computer Science 366, Springer-Verlag.Google Scholar
  4. [Bak80]
    J.W. de Bakker. Mathematical Theory of Program Correctness. Prentice-Hall International, Englewood Cliffs, NJ, 1980.MATHGoogle Scholar
  5. [CM88]
    K.M. Chandy and J. Misra. Parallel Program Design: A Foundation. Addison-Wesley, New York, 1988.MATHGoogle Scholar
  6. [EF82]
    T. Elrad and N. Francez. Decompositions of distributed programs into communication closed layers. Science of Computer Programming, 2 (3): 155–173, 1982.MATHCrossRefGoogle Scholar
  7. [FS78]
    L. Flon and N. Suzuki. Nondeterminism and the correctness of parallel programs In E.J. Neuhold, editor, Formal Description of Programming Concepts, pages 598–608, Amsterdam, 1978. North-Holland.Google Scholar
  8. [FS81]
    L. Flon and N. Suzuki. The total correctness of parallel programs. SIAM Journal on Computing, pages 227–246, 1981.Google Scholar
  9. [Kna90]
    E. Knapp. Derivation of parallel programs. two examples. 1990. Note.Google Scholar
  10. [Lam77]
    L. Lamport. Proving the correctness of multiprocess programs. IEEE Transactions on Software Engineering, SE-3: 2: 125–143, 1977.MathSciNetGoogle Scholar
  11. [Lip75]
    R. Lipton. Reduction: a method of proving properties of parallel programs. Communications of the ACM, 18: 717–721, 1975.MathSciNetMATHCrossRefGoogle Scholar
  12. [OG76]
    S.Owicki and D. Gries An axiomatic proof technique for parallel programs. Acta Informatica, 6: 319–340, 1976.MathSciNetMATHCrossRefGoogle Scholar
  13. [Owi78]
    S. Owicki. Verifying concurrent programs with shared data classes. In E.J. Neuhold, editor, Proceedings of the IFIP Working Conference on Formal Description of Programming Concepts, pages 279–298. North-Holland, 1978.Google Scholar

Copyright information

© Springer Science+Business Media New York 1991

Authors and Affiliations

  • Krzysztof R. Apt
    • 1
  • Ernst-Rüdiger Olderog
    • 2
  1. 1.CWIAmsterdamThe Netherlands
  2. 2.Department of Computer ScienceUniversity of OldenburgOldenburgGermany

Personalised recommendations