Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

An attempt to reason about shared-state concurrency in the style of VDM

  • Papers
  • Conference paper
  • First Online:
VDM'91 Formal Software Development Methods (VDM 1991)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 551))

Included in the following conference series:

  • 114 Accesses

Abstract

The paper presents an attempt to develop a totally correct shared-state parallel program in the style of VDM. Programs are specified by tuples of five assertions (P,R,W,G,E). The pre-condition P, the rely-condition R and the wait-condition W describe assumptions about the environment, while the guar-condition G and the eff-condition E characterise commitments to the implementation.

The pre-, rely- and guar-conditions are closely related to the similarly named conditions in Jones' rely/guarantee method, while the eff-condition corresponds to what Jones calls the post-condition. The wait-condition is supposed to characterise the set of states in which it is safe for the implementation to be blocked; in other words, the set of states in which the implementation, when it becomes blocked, eventually will be released by the environment. The implementation is not allowed to be blocked during the execution of an atomic statement.

Auxiliary variables are introduced to increase the expressiveness. They are used both as a specification tool; to characterise a program that has not yet been implemented, and as a verification tool; to show that a given algorithm satisfies a specific property. However, although it is possible to define historyvariables in this approach, the auxiliary variables may be of any type, and it is up to the user to define the auxiliary structure he prefers. Moreover, the auxiliary structure is only a part of the logic. This means that auxiliary variables do not have to be implemented as if they were ordinary programming variables.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. 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. Springer-Verlag, 1990.

    Google Scholar 

  2. R. J. R. Back. A calculus of refinments for program derivations. Acta Informatica, 25:593–624, 1988.

    Google Scholar 

  3. H. Barringer. A Survey of Verification Techniques for Parallel Programs, volume 191 of Lecture Notes in Computer Science. Springer-Verlag, 1985.

    Google Scholar 

  4. H. Barringer, R. Kuiper, and A. Pnueli. Now you may compose temporal logic specifications. In Proc. Sixteenth ACM Symposium on Theory of Computing, pages 51–63, 1984.

    Google Scholar 

  5. K. M. Chandy and J. Misra. Parallel Program Design, A Foundation. Addison-Wesley, 1988.

    Google Scholar 

  6. E. W. Dijkstra. A correctness proof for communicating processes: A small exercise. In Selected Writings on Computing: A Personal Perspective. Springer-Verlag, 1982.

    Google Scholar 

  7. W. P. de Roever. The quest for compositionality, formal models in programming. In F. J. Neuhold and G. Chroust, editors, Proc. IFIP 85, pages 181–205, 1985.

    Google Scholar 

  8. D. Grosvenor and A. Robinson. An evaluation of rely-guarantee. Unpublished Paper, March 1989.

    Google Scholar 

  9. C. B. Jones. Development Methods for Computer Programs Including a Notion of Interference. PhD thesis, Oxford University, 1981.

    Google Scholar 

  10. C. B. Jones. Specification and design of (parallel) programs. In Mason R.E.A., editor, Proc. Information Processing 83, pages 321–331, 1983.

    Google Scholar 

  11. C. B. Jones. Systematic Software Development Using VDM, Second Edition. Prentice-Hall International, 1990.

    Google Scholar 

  12. C. B. Jones and R. C. F. Shaw, editors. Case Studies in Systematic Software Development. Prentice Hall International, 1990.

    Google Scholar 

  13. L. Lamport. A temporal logic of actions. Technical Report 57, Digital, Palo Alto, 1990.

    Google Scholar 

  14. S. Owicki and D. Gries. An axiomatic proof technique for parallel programs. Acta Informatica, 6:319–340, 1976.

    Google Scholar 

  15. N. Soundararajan. A proof technique for parallel programs. Theoretical Computer Science, 31:13–29, 1984.

    Google Scholar 

  16. C. Stirling. A generalization of Owicki-Gries's Hoare logic for a concurrent while language. Theoretical Computer Science, 58:347–359, 1988.

    Google Scholar 

  17. K. Stølen. Development of Parallel Programs on Shared Data-Structures. PhD thesis, University of Manchester, 1990.

    Google Scholar 

  18. K. Stølen. A method for the development of totally correct shared-state parallel programs. Accepted for CONCUR'91, proceedings will appear in Lecture Notes in Computer Science, 1991.

    Google Scholar 

  19. K. Stølen. Proving total correctness with respect to fair (shared-state) parallel languages. In preparation, 1991.

    Google Scholar 

  20. J. C. P. Woodcock and B. Dickinson. Using VDM with rely and guarantee-conditions. Experiences from a real project. In R. Bloomfield, L. Marshall, and R. Jones, editors, Proc. 2nd VDM-Europe Symposium, Lecture Notes in Computer Science 328, pages 434–458, 1988.

    Google Scholar 

  21. Q. Xu and J. He. A theory of state-based parallel programming by refinement:part 1. In J. Morris, editor, Proc. 4th BCS-FACS Refinement Workshop, 1991.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

S. Prehn W. J. Toetenel

Rights and permissions

Reprints and permissions

Copyright information

© 1991 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Stølen, K. (1991). An attempt to reason about shared-state concurrency in the style of VDM. In: Prehn, S., Toetenel, W.J. (eds) VDM'91 Formal Software Development Methods. VDM 1991. Lecture Notes in Computer Science, vol 551. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-54834-3_20

Download citation

  • DOI: https://doi.org/10.1007/3-540-54834-3_20

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-54834-8

  • Online ISBN: 978-3-540-46449-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics