Skip to main content

The temporal semantics of concurrent programs

  • Conference paper
  • First Online:
Semantics of Concurrent Computation

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

Abstract

The formalism of Temporal logic is suggested as an appropriate tool for formalizing the semantics of concurrent programs. A simple model of concurrent program is presented in which n processors are executing concurrently n disjoint programs under a shared memory environment. The semantics of such a program specifies the class of state sequences which are admissible as proper execution sequences under the program.

The two main criteria which are required are

a) Each state is obtained from its predecessor in the sequence by exactly one processor performing an atomic instruction in its process.

b) Fair Scheduling: No processor which is infinitely often enabled will be indefinitely delayed.

The basic elements of Temporal Logic are introduced in a particular logic framework DX. The usefulness of Temporal Logic notation in describing properties of concurrent programs is demonstrated. A construction is then given for assigning to a program P a temporal formula W(P) which is true on all proper execution sequences of P. In order to prove that a program P possesses a property R, one has only to prove the implication W(P)⊃R.

An example of such proof is given. It is then demonstrated that specification of the Temporal character of the program's behavior is absolutely essential for the unabiguous undestanding of the meaning of programming constructs.

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.

References

  1. Brinch Hausen, P.: "A Comparison of Two Synchronizing Concepts", Acta Informatica 1 (1972) 190–199.

    Article  Google Scholar 

  2. Büchi, J.R.: "On a Decision Method in Restricted Second Order Arithmetic", International Congress on Logic Methodology and Philosophy of Science, Stanford, California (1960).

    Google Scholar 

  3. Bull, R.A.: "An Algebraic Study of Diodorean Modal Systems", Journal of Symbolic Logic 30 (1965) 58–64.

    Google Scholar 

  4. Burstall, R.M.: "Formal Description of Program Structure and Semantics of First Order Logic", Machine Intelligence 5(1970) 79–98.

    Google Scholar 

  5. Dummet, M.A. and Lemmon, E.J.: "Modal Logic between S4 and S5" Zeitschrift für Math. Logik ünd Gründ, der Mathematics 5(1959) 250–264.

    Google Scholar 

  6. Francez, N. and Pnueli, A.: "The Analysis of Cyclic Programs", Acta Informatica 9(1978) 133–157.

    Article  Google Scholar 

  7. Gries, D.: "A Proof of Correctness of Reim's Semaphore Implementation of the With-When statement". Technical Report TR 77–314, Cornell University, Ithaca, N.Y. 14853.

    Google Scholar 

  8. Hoare, C.A.R.: "Towards a Theory of Paralle Programming" in Hoare, Perrot (Eds.): Operating Systems Techniques (1972) Academic Press.

    Google Scholar 

  9. Hughes, G.E. and Creswell, M.J.: "An Introduction to Modal Logic", Methuen and Co. London 1972.

    Google Scholar 

  10. Keller, R.M.: Formal Verification of Parallel Programs". CACM 19 (7) 1976.

    Google Scholar 

  11. Krablin, L.: "A Temporal Analysis of Fairness", a forthcoming M.Sc. thesis, University of Pennsylvania.

    Google Scholar 

  12. Kröger, F.: "LAR: A Logic of Algorithmic Reasoning", Acta Informatica 8(1977) 243–266.

    Article  Google Scholar 

  13. Lamport, L.: "Proving the Correctness of Multiprocess Programs", IEEE Transactions on Software Engineering 3(2) 1977, 125–143.

    Google Scholar 

  14. Manna Z: "Properties of Programs and First Order Predicate Calculus", JACM 16 (2) 244–255.

    Google Scholar 

  15. Owicki, S. and Gries, D.: "An Axiomatic Proof Technique for Parallel Programs", Acta Informatica 5, 319–339.

    Google Scholar 

  16. Owicki, S. and Gries, D.: "Verifying Properties of Parallel Programs: An Axiomatic Approach", CACM 19 (5) 1976, 279–284.

    Google Scholar 

  17. Pnueli, A.: "The Temporal Logic of Programs", 19th Annual Symposium on Foundations of Computer Science, Providence R.I. Nov. 1977.

    Google Scholar 

  18. Prior, A.: "Past, Present and Future", Oxford University Press 1967.

    Google Scholar 

  19. Ashcroft, E.A.: "Proving Assertions About Parallel Programs", JCSS 10, 1(1975) 110–135.

    Google Scholar 

  20. Ashcroft, E.A. and Wadge, W.W.: "Intermittent Assertion Proofs in Lucid," IFIP, Toronto 1977.

    Google Scholar 

  21. Kahn, G: "The Semantics of Simple Language for Parallel Proggramming", Proceedings IFIP 14, North Holland.

    Google Scholar 

  22. Harel, D. and Pratt, V.R.: "Nondeterminism in Logics of Programs", Proc. 5th ACM Sumposium on Principles of Programming Languages. Tucson, Ariz. Jan. 1978.

    Google Scholar 

  23. Lamport, L.: "Sometime is sometimes "not never", Technical Report CSL-86, SRI International' Menlo Park, California, Jan. 1979.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Gilles Kahn

Rights and permissions

Reprints and permissions

Copyright information

© 1979 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Pnueli, A. (1979). The temporal semantics of concurrent programs. In: Kahn, G. (eds) Semantics of Concurrent Computation. Lecture Notes in Computer Science, vol 70. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0022460

Download citation

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

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

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

  • Online ISBN: 978-3-540-35163-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics