Skip to main content

Programming in a general model of synchronization

  • Conference paper
  • First Online:
CONCUR '92 (CONCUR 1992)

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

Included in the following conference series:

Abstract

We propose a programming formalism that provides multiprocess synchronization and priorities. As in CCS and CSP, processes communicate by executing pairs of complementary actions. Processes are labelled transition systems, where the labels are formed by combining atomic actions with the operators Λ, ⌝. Intuitively, a Λ b expresses multiple synchronization on actions a,b, while ⌝e expresses that the actions specified by e cannot be performed in the current environment.

The operational semantics is based on a notion of stratification, like that in logic programming. Stratification requires a partial order on actions, which is related to priority. We allow systems to place different priorities on actions at different states.

The goals of the language are: to serve as a high level executable specification language for concurrent programs, and to enable mechanical reasoning techniques such as model checking to be applied to specifications. We identify a large class of specifications that are efficiently executable, and present a simple synchronization algorithm.

The language is being used to design multiprocess systems for controlling telephone switching. We describe progress towards the goal of applying model checking to complex software systems.

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. K.R. Apt, Logic programming, in Handbook of Theoretical Computer Science, Volume B, Formal Models and Semantics, Chapter 10, North Holland, 1990.

    Google Scholar 

  2. R.J. Back and R. Kurki-Suonio, Distributed cooperation with action systems, ACM Transactions on Programming Languages and Systems, 10, 4 (1988) pp. 513–544.

    Article  MATH  Google Scholar 

  3. B. Bloom, S. Istrail, A. Meyer, Bisimulation can't be traced: preliminary report, in Proceedings of Fifteenth Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, January 1988, pp. 229–239.

    Google Scholar 

  4. R. Bol and J.F. Groote, The meaning of negative premises in transition system specifications, Report CS-R9054, Centre for Mathematics and Computer Science, Amsterdam, The Netherlands, 1990, and in Proceedings of 18 th ICALP, 1991, pp. 481–494.

    Google Scholar 

  5. T. Bolognesi and E. Brinksma, Introduction to the ISO specification language LOTOS, Computer Networks and ISDN Systems, 14(1987), pp. 25–59.

    Article  Google Scholar 

  6. S. Budkowski and P. Dembinski, An Introduction to Estelle: A Specification Language for Distributed Systems. Computer Networks and ISDN Systems 14 (1987), pp. 3–23.

    Article  Google Scholar 

  7. J.R. Burch, E.M. Clarke, K.L. McMillan, D.L. Dill, L.J. Hwang, Symbolic model checking: 1020 states and beyond, in Proceedings of Fifth Annual IEEE Symposium on Logic in Computer Science, June 1990, pp. 428–439.

    Google Scholar 

  8. J. Camilleri, A conditional operator for CCS, in Proceedings of Concur '91, Amsterdam, August 1991.

    Google Scholar 

  9. CCITT/SGXI Recommendation Z101 to Z104, Functional Specification and Description Language, 1985.

    Google Scholar 

  10. J. Camilleri and G. Winskel, CCS with priority choice, in Proceedings of the Sixth Annual IEEE Symposium on Logic in Computer Science, July 1991.

    Google Scholar 

  11. K.M. Chandy and J. Misra, Parallel program design: a foundation, Addison-Wesley, 1988.

    Google Scholar 

  12. E.M. Clarke, E.A. Emerson, and A.P. Sistla, Automatic verification of finitestate concurrent systems using temporal logic specifications, ACM Transactions on Programming Languages and Systems, 8, 2, April 1986, pp. 244–263.

    Article  MATH  Google Scholar 

  13. R. Cleaveland and M. Hennessy, Priorities in process algebras, in Proceedings of the Third Annual IEEE Symposium on Logic in Computer Science, July 1988, pp. 193–202.

    Google Scholar 

  14. N. Francez and I.R. Forman, Interacting processes: a language for coordinated distributed programming, invited paper for Jerusalem Conference on Information Technology, Jerusalem, 1990.

    Google Scholar 

  15. N. Francez, B. Hailpern, and G. Taubenfeld, Script: a communication abstraction mechanism, Science of Computer Programming, 6, 1, January 1986, pp. 35–88.

    Article  MATH  Google Scholar 

  16. S.M. German, Rapid Prototyping and Verification of Communication Services, GTE Laboratories TM-0369-01-91-152, January 1991.

    Google Scholar 

  17. S.M. German, A Language for Specifying Synchronization, GTE Laboratories, October 1991.

    Google Scholar 

  18. R. van Glabbeek, S. Smolka, B. Steffen, and C. Tofts, Reactive, generative, and stratified models of probabilistic processes, in Proceedings of 5th Annual IEEE Symposium on Logic in Computer Science, June 1990, pp. 130–141.

    Google Scholar 

  19. J.F. Groote, Transition system specifications with negative premises, Report CS-R8950, Centre for Mathematics and Computer Science, Amsterdam, The Netherlands, December 1989, and in J.C.M. Baeten and J.W. Klop, eds., Proceedings of CONCUR 90, Springer-Verlag LNCS 458, pp. 332–341.

    Google Scholar 

  20. C.A.R. Hoare, Communicating sequential processes, Communications of the ACM, 21, 8, August 1978, pp. 666–677.

    Article  MATH  MathSciNet  Google Scholar 

  21. C.A.R. Hoare, Communicating Sequential Processes, Prentice Hall, 1985.

    Google Scholar 

  22. INMOS Ltd., Occam Programming Manual, Prentice Hall, 1984.

    Google Scholar 

  23. Yuh-Jzer Joung and S.A. Smolka, A Comprehensive Study of the Complexity of Multiparty Interaction, in Proceedings of POPL 1992.

    Google Scholar 

  24. R. Milner, A Calculus of Communicating Systems, LNCS 92, Springer Verlag, 1980.

    Google Scholar 

  25. R. de Simone, Higher-level synchronizing devices in Meije-SCCS, Theoretical Computer Science, 37 (1985) pp. 245–267.

    Article  MATH  MathSciNet  Google Scholar 

  26. S.A. Smolka and B. Steffen, Priority as extermal probability, in Proceedings of Concur '90, August 1990, Springer-Verlag Lecture Notes in Computer Science 458, pp. 456–466.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

W.R. Cleaveland

Rights and permissions

Reprints and permissions

Copyright information

© 1992 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

German, S.M. (1992). Programming in a general model of synchronization. In: Cleaveland, W. (eds) CONCUR '92. CONCUR 1992. Lecture Notes in Computer Science, vol 630. Springer, Berlin, Heidelberg . https://doi.org/10.1007/BFb0084814

Download citation

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

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-55822-4

  • Online ISBN: 978-3-540-47293-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics