Skip to main content
Log in

A complete axiomatic semantics of spawning

  • Published:
Distributed Computing Aims and scope Submit manuscript

Summary

In modern imperative languages there are two commonly occurring ways to activate concurrently running tasks,splitting (cobegin...coend) andspawning. The programming language Ada makes use of both forms of task activation. We present a formal system for verifying partial correctness specifications of Ada tasks activated by spawning. The system is based upon a view of tasks as histories of events. We show how the mindset of splitting may be applicable when developing a formal system for reasoning about spawning. The resultant proof system is compositional, and a robust extension of partial correctness proof systems for sequential constructs. A transition model is given for spawning, and the proof system is proven complete in the sense of Cook [10] relative to this model, under certain reasonable assumptions. The specific proof rules given apply to a subset of Ada without real-time and distributed termination. Our approach to task verification applies to other imperative languages besides Ada, and the essential parts of our methodology are applicable to other formal systems besides those based on partial correctness reasoning.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. America P, de Bakker J: Designing equivalent semantic models for process creation. Theor Comput Sci 60(2):109–176 (1988)

    Google Scholar 

  2. Apt, KR, Francez N, de Roever WP: A proof system for communicating sequential processes. ACM TOPLAS 2(3):359–385 (1980)

    Google Scholar 

  3. Apt KR: Ten years of hoare's logic: a survey — Part 1. ACM TOPLAS 3(4):431–483 (1981)

    Google Scholar 

  4. Ashcroft EA, Clint M, Hoare CAR: Remarks on “Program proving: jumps and functions by M. Clint and C.A.R. Hoare”. Acta Inf 6:317–318 (1976)

    Google Scholar 

  5. Belz FC, Luckham DC: A new approach to prototyping Adabased hardware/software systems. In: Tri-Ada '90 Conference Proceedings (December 1990)

  6. de Boer FS: A proof rule for process creation. In: Wirsing M (ed). Formal description of programming concepts — III. IFIP, North Holland, Amsterdam 1987, pp 23–48

    Google Scholar 

  7. Broy M, Wirsing M: On the algebraic specification of nondeterministic programming languages. In: Astesiano, E., Böhm, C (eds) Proceedings of the 6th CAAP. Lect Notes Comput Sci, Vol 112. Springer, Berlin Heidelberg New York 1981, pp 162–179

    Google Scholar 

  8. Clint M, Hoare CAR: Program proving: jumps and functions. Acta Inf 1:214–224 (1972)

    Google Scholar 

  9. Clint M.: Program proving: coroutines. Acta Inf 2:50–63 (1973)

    Google Scholar 

  10. Cook SA: Soundness and completeness of an axiom system for program verification. SIAM J Comput 7(1):70–90 (1978)

    Google Scholar 

  11. Dahl OJ: Can program proving be practical? In:Amirchahy M, Neel D (eds) Les Fondements de la Programmation. CCE-CREST, IRIA 1978, pp. 56–115. Also in: Research Reports in Informatics no. 33, Institute of Informatics, University of Oslo

  12. Dahl OJ: Time sequences as a tool for describing program behaviour. Tech Rep 48, Institute of Informatics, University of Oslo, 1979

  13. Ehrig, H, Mahr B: Fundamentals of algebraic specification 1. Springer, Berlin Heidelberg New York 1985

    Google Scholar 

  14. Francez N, Lehman D, Pnueli A: A linear history semantics for languages for distributed programming. Theor Comput Sci 32:25–46 (1984)

    Google Scholar 

  15. Gerth R, de Roever WP: A proof system for concurrent Ada programs. Sci Comput Program 4:159–204 (1984)

    Google Scholar 

  16. Guttag JV, Horning, JJ: The algebraic specification of abstract data types. Acta Inf 10:27–52 (1978)

    Google Scholar 

  17. Hesselink WH: A mathematical approach to nondeterminism in data types. ACM TOPLAS 10(1):87–117 (1988)

    Google Scholar 

  18. Hoare CAR: An axiomatic basis for computer programming. Commun ACM 12 (10):576–580 (1969)

    Google Scholar 

  19. Hoare CAR: Communicating sequential processes. Commun ACM 21(8):666–677 (1978)

    Google Scholar 

  20. Hoare CAR: Communicating sequential processes. Prentice-Hall, London 1985

    Google Scholar 

  21. Levin GM, Gries D: A proof technique for communicating sequential processes. Acta Inf 15:281–302 (1981)

    Google Scholar 

  22. London RL, Guttag JV, Horning JJ, Lampson BW, Mitchell JG, Popek GJ: Proof rules for the programming language Euclid. Acta Inf 10(1):1–26 (1978)

    Google Scholar 

  23. Luckham DC, Helmbold DP, Meldal S, Bryan DL, Haberler MA: Task sequencing language for specifying distributed Ada systems. In: Habermann, AN, Montanari U (eds) System development and Ada, Proceedings of the CRAI Workshop on Software Factories and Ada. Springer, Berlin Heidelberg New York 1986, pp 249–305. Also in technical report no. CSL-TR-87-334, Stanford University

    Google Scholar 

  24. McGettrick AD: Program verification using Ada. Cambridge Computer Science Texts. Cambridge University Press, Cambridge 1982

    Google Scholar 

  25. Meldal S: An axiomatic semantics for nested concurrency. BIT 26(2):164–174 (1986)

    Google Scholar 

  26. Meldal S: Partial correctness of exits from concurrent structures. BIT, 26(3):295–302 (1986)

    Google Scholar 

  27. Meldal S: Language elements for hierarchical abstraction in concurrent structures. Tech Rep 102, Research Report in Informatics, Institute of Informatics, University of Oslo, 1986

  28. Meldal S: Axiomatic semantics of access type tasks in Ada. Tech Rep 100, Research Report in Informatics, Institute of Informatics, University of Oslo, 1986

  29. Meldal S, Luckham, D.C., Haberler MA: Specifying Ada tasking using patterns of behavior. In: Shriver, BD (ed) Proceedings of the 21st Annual Hawaii International Conference on System Sciences. IEEE Computer Society Press 1988, pp 129–134

  30. Meldal S: Extending CSP with termination independent process activation. Tech Rep 37, Department of Informatics, University of Bergen, 1989

  31. Meldal S: An abstract axiomatization of pointer types. In: Shriver BD (ed) Proceedings of the 22nd Annual Hawaii International Conference on System Sciences. IEEE Computer Society Press, 1989

  32. Nipkow T: Non-deterministic data types: models and implementations. Acta Inf 22:629–661 (1986)

    Google Scholar 

  33. Owe O: Notes on partial correctness. Tech Rep 26, Research Reports in Informatics, Institute of Informatics, University of Oslo, 1977

  34. Owicki S, Gries D: An axiomatic proof technique for parallel programs. Acta Inf 6:319–340 (1976)

    Google Scholar 

  35. Schlichting RD, Schneider FB: Using message passing for distributed programming: proof rules and disciplines. ACM TOPLAS 6(3):402–431 (1984)

    Google Scholar 

  36. Soundararajan N, Dahl OJ: Partial correctness semantics of CSP. Tech Rep 66, Research Report in Informatics, Institute of Informatics, University of Oslo, 1982

  37. Soundararajan N: A proof technique for parallel programs. Theor Comput Sci 31:13–29 (1984)

    Google Scholar 

  38. Reference Manual for the Ada Programming Language, U.S. Department of Defense, ANSI/MIL-STD-1815A, 1983

  39. Wirsing M: Algebraic specification. Tech Rept MIP-8914, Universität Passau, 1989

Download references

Author information

Authors and Affiliations

Authors

Additional information

Sigurd Meldal is professor of informatics at the University of Bergen. He is interested in techniques and tools based on formal methods for development of concurrent software. His current foci are the investigation of algebraic approaches to nondeterminism, and the participation in the design of a concurrent specification, prototyping and implementation language. The latter supplements formal proof with support for run time control of consistency between concurrent systems as specified and as implemented. Meldal received his cand. real. (1982) and dr. scient. (1986) degrees in informatics from the University of Oslo.

This research was supported by a grant from the Norwegian Research Council for Science and the Humanities, by the Defense Advanced Research Projects Agency/Information Systems Technology Office under the office of Naval Research contract N00014-90-J1232, by the Air Force Office of Scientific Research under Grant AFOSR83-0255 and by a Fulbright Scholarship from the US Educational Foundation in Norway

Rights and permissions

Reprints and permissions

About this article

Cite this article

Meldal, S. A complete axiomatic semantics of spawning. Distrib Comput 5, 159–174 (1991). https://doi.org/10.1007/BF02252958

Download citation

  • Received:

  • Accepted:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF02252958

Key words

Navigation