Advertisement

Refinement calculus, part II: Parallel and reactive programs

  • R. J. R. Back
Technical Contributions
Part of the Lecture Notes in Computer Science book series (LNCS, volume 430)

Abstract

It is shown how to apply the refinement calculus to stepwise refinement of both parallel programs and reactive programs. The approach is based on using the action systems model to describe parallel and reactive systems. Action systems are sequential programs which can be implemented in a parallel fashion. Hence the refinement calculus for sequential programs carries over to the parallel programs expressed in this framework. Refinement of reactive programs can be expressed and proved in the refinement calculus by using the methods of data refinement from the sequential refinement calculus.

Key words

Stepwise refinement weakest preconditions total correctness parallel programs reactive programs refinement mappings parallel composition hiding stuttering action systems fairness simulation 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    M. Abadi and L. Lamport. The existence of refinement mappings. In Proc. 3rd IEEE Symp. on LICS, Edinburgh, 1988.Google Scholar
  2. [2]
    K. R. Apt and E.-R. Olderog. Proof rules dealing with fairness. Science of Computer Programming, 3:65–100, 1983.Google Scholar
  3. [3]
    R. J. R. Back. Refining atomicity in parallel algorithms. In PARLE Conference on Parallel Architectures and Languages Europe, volume 366 of Lecture Notes in Computer Science, Eindhoven, the Netherlands, June 1989. Springer Verlag. Also available as Åbo Akademi reports on computer science and mathematics no. 57, 1988.Google Scholar
  4. [4]
    R. J. R. Back, E. Hartikainen, and R. Kurki-Suonio. Multi-process handshaking on broadcasting networks. Reports on computer science and mathematics 42, Åbo Akademi, 1985.Google Scholar
  5. [5]
    R. J. R. Back and R. Kurki-Suonio. Decentralization of process nets with centralized control. In 2nd ACM SIGACT-SIGOPS Symp. on Principles of Distributed Computing, pages 131–142. ACM, 1983.Google Scholar
  6. [6]
    R. J. R. Back and R. Kurki-Suonio. Co-operation in distributed systems using symmetric multiprocess handshaking. Reports on computer science and mathematics 34, Åbo Akademi, 1984.Google Scholar
  7. [7]
    R. J. R. Back and R. Kurki-Suonio. Distributed co-operation with action systems. ACM Transactions on Programming Languages and Systems, 10:513–554, October 1988. Previous version in Åbo Akademi reports on computer science and mathematics no. 34, 1984.CrossRefGoogle Scholar
  8. [8]
    R. J. R. Back and R. Kurki-Suonio. Serializability in distributed systems with handshaking. In International Colloquium on Automata, Languages and Programming, volume 317 of Lecture Notes in Computer Science, 1988. Previous version in CMU-CS-85-109, Carnegie-Mellon University 1985.Google Scholar
  9. [9]
    R. J. R. Back and R. Kurki-Suonio. Decentralization of process nets with centralized control. Distributed Computing, 3(2):73–87, 1989. Appeared previously in 2nd ACM SIGACT-SIGOPS Symp. on Principles of Distributed Computing 1983.CrossRefGoogle Scholar
  10. [10]
    R. J. R. Back and K. Sere. An exercise in deriving parallel algorithms: Gaussian elimination. Reports on computer science and mathematics 65, Åbo Akademi, 1988.Google Scholar
  11. [11]
    R. J. R. Back and K. Sere. An implementation of action systems in occam. (in preparation), 1989.Google Scholar
  12. [12]
    R. J. R. Back and K. Sere. Refinement of action systems. In Mathematics of Program Construction, volume 375 of Lecture Notes in Computer Science, Groningen, The Netherlands, June 1989. Springer-Verlag.Google Scholar
  13. [13]
    R. Bagrodia. An environment for the design and performance analysis of distributed systems. PhD thesis, The University of Texas at Austin, Austin, Texas, 1987.Google Scholar
  14. [14]
    K. Chandy and J. Misra. Parallel Program Design: A Foundation. Addison-Wesley, 1988.Google Scholar
  15. [15]
    P. Eklund. Synchronizing multiple processes in common handshakes. Reports on computer science and mathematics 39, Åbo Akademi, 1985.Google Scholar
  16. [16]
    N. Francez. Fairness. Springer-Verlag, 1986.Google Scholar
  17. [17]
    D. Harel. Statecharts: a visual formalism for complex systems. Science of Computer Programming, 8(3):231–274, 1987.CrossRefGoogle Scholar
  18. [18]
    C. A. R. Hoare. Communicating sequential processes. Communications of the ACM, 21(8):666–677, August 1978.CrossRefGoogle Scholar
  19. [19]
    C. A. R. Hoare. Communicating Sequential Processes. Prentice-Hall, 1985.Google Scholar
  20. [20]
    INMOS Ltd. occam Programming Manual. Prentice-Hall International, 1984.Google Scholar
  21. [21]
    B. Jonsson. Compositional Verification of Distributed Systems. PhD thesis, Dept. of Computer Systems, Uppsala University, Uppsala, 1987. Available as report DoCS 87/09.Google Scholar
  22. [22]
    R Kurki-Suonio and H.-M. Järvinen. Action system approach to the specification and design of distributed systems. In Proc. 5th International Workshop on Software Specification and Design, volume 14(3) of ACM Software Engineering Notes, pages 34–40, 1989.Google Scholar
  23. [23]
    R. Kurki-Suonio and T. Kankaanpää. On the design of reactive systems. BIT, 28(3):581–604, 1988.Google Scholar
  24. [24]
    S. S. Lam and A. U. Shankar. A relational notation for state transition systems. Technical Report TR-88-21, Dept. of Computer Sciences, University of Texas at Austin, 1988.Google Scholar
  25. [25]
    L. Lamport. Reasoning about nonatomic operations. In Proc. 10th ACM Conference on Principles of Programming Languages, pages 28–37, 1983.Google Scholar
  26. [26]
    L. Lamport. A simple approach to specifying concurrent systems. Communications of the ACM, 32(1):32–45, January 1989.Google Scholar
  27. [27]
    N. A. Lynch and M. R. Tuttle. Hierarchical correctness proofs for distributed algorithms. In Proc. 6th ACM Symp. on Principles of Distributed Computing, pages 137–151, 1987.Google Scholar
  28. [28]
    Z. Manna and A. Pnueli. How to cook a temporal proof system for your pet language. In Proc. 10th ACM Symp. on Principles of Programming Languages, pages 141–154, 1983.Google Scholar
  29. [29]
    R. Milner. A Calculus of Communicating Systems, volume 92 of Lecture Notes of Computer Science. Springer Verlag, 1980.Google Scholar
  30. [30]
    J. Misra. Specifications of concurrently accessed data. In J. van de Snepscheut, editor, Mathematics of Program Construction, volume 375 of Lecture Notes in Computer Science, Groningen, The Netherlands, June 1989. Springer-Verlag.Google Scholar
  31. [31]
    A. Pnueli. Applications of temporal logic to the specification and verification of reactive systems: A survey of current trends. In de Bakker, de Roever, and Rozenberg, editors, Current Trends in Concurrency, volume 224 of Lecture Notes in Computer Science, pages 510–584. Springer Verlag, 1986.Google Scholar
  32. [32]
    K. Sere. Stepwise removal of virtual channels in distributed algorithms. In 2nd International Workshop on Distributed Algorithms, 1987.Google Scholar
  33. [33]
    E. W. Stark. Foundations of a Theory of Specification for Distributed Systems. PhD thesis, Massachussetts Inst. of Technology, 1984. Available as Report No. MIT/LCS/TR-342.Google Scholar
  34. [34]
    E. W. Stark. Proving entailment between conceptual state specifications. Theoretical Comput. Sci., 56:135–154, 1988.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1990

Authors and Affiliations

  • R. J. R. Back
    • 1
  1. 1.Department ofComputer ScienceÅbo Akademi UniversityÅboFinland

Personalised recommendations