A communication data type for message oriented programming

  • P. R. F. Cunha
  • T. S. E. Maibaum
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 83)


In this report we resort to a definitional specification technique in order to be able to bridge the gap between program specification and program implementation (expressed in a high level application language) in message oriented programming. We show how the notion of algebraic specification can be used to formalize the communications primitives and then applied to the verification of communications properties of parallel programs. We illustrate the method by introducing elements of a calculus for reasoning about message passing programs and then using a specification of the consumer and producer problem and showing that the proposed solution is deadlock free.

5. References

  1. [1]
    Baskett, F., Howard, J.H., Montague, J.T.: Task Communications in DEMOS; Proc. of the 6th ACM Symp. on O.S. Principles, 1977.Google Scholar
  2. [2]
    Brinch Hansen, P.: The Nucleus of an Operating System; CACM, April 1970, pp. 238–241, 250.Google Scholar
  3. [3]
    Campbell, R.H., Habermann, A.M.: The Specification of Process Synchronization by Path Expressions; Lecture Notes in Computer Science, Springer-Verlag, Vol. 16, 1974.Google Scholar
  4. [4]
    Cheriton, D.R.: Multi-Process Structuring and the Thoth Operating System; Ph.D. Thesis, University of Waterloo, August 1978.Google Scholar
  5. [5]
    Cheriton, D.R., Malcolm, M.A., Melen, L.S., Sager, G.R.: Thoth, A Portable Real-Time Operating System; CACM, February 1979.Google Scholar
  6. [6]
    Cunha, P.R.F., Lucena, C.J., Maibaum, T.S.E.: On the Design and Specification of Message Oriented Programs, to appear in the Int. J. of Computer and Information Sciences.Google Scholar
  7. [7]
    Cunha, P.R.F., Lucena, C.J., Maibaum, T.S.E.: A Methodology for Message Oriented Programming; to be presented at the 6th GI Conference on Programming Languages and Program Development, Darmstadt, March 1980.Google Scholar
  8. [8]
    Dijkstra, E.W.: Cooperating Sequential Processes; Programming Languages, F. Genuys (ed.), Academic Press, New York, 1968 (pp. 43–112).Google Scholar
  9. [9]
    Goguen, J.A., Thatcher, J.W., Wagner, E.G., Wright, J.F.: An Initial Algebra Approach to the Specification, Correctness and Implementation of Abstract Data Types; IBM Research Report, RC6487, 1976.Google Scholar
  10. [10]
    Guttag, J.: The Specification and Application to Programming of Abstract Data Types; Ph.D. Thesis, CSRG TR-59, University of Toronto, September 1975.Google Scholar
  11. [11]
    Hewitt, C., Baker, H.: Laws for Communicating Parallel Processes; Information Processing 1977, pp. 987–992.Google Scholar
  12. [12]
    Hoare, C.A.R.: Monitors, an Operating System Structuring Concept, CACM, October 1974 pp. 549–557.Google Scholar
  13. [13]
    Hoare, C.A.R.: Communicating Sequential Processes; CACM, August 1978, pp. 666–677.Google Scholar
  14. [14]
    Jammel, A.J., Stiegler, H.G.: Managers versus Monitors; Proc. of the IFIP 1977, pp. 827–830.Google Scholar
  15. [15]
    Kahn, G., MacQueen, D.B.: Coroutines and Networks of Parallel Processes; Information Processing 1977, pp. 993–998.Google Scholar
  16. [16]
    Landin, P.J.: The Mechanical Evaluation of Expressions; Computer Journal, Vol. 6, No. 4, 1964, pp. 308–320.Google Scholar
  17. [17]
    Liskov, B.H., Zilles, S.: Programming with Abstract Data Types; Proc. Conference on Very High Level Languages, SIGPLAN, Vol. 9, April 1974.Google Scholar
  18. [18]
    MacQueen, D.B.: Models for Distributing Computing; Proc. of EEC/IRIA Course on the Design of Distributed Processing, Nice, France, July 1978.Google Scholar
  19. [19]
    Manning, E.G., Peebles, R.W.: A Homogeneous Network for Data-Sharing Communications; Computer Networks 1, 1977, pp. 211–224.Google Scholar
  20. [20]
    Milne, G.: A Mathematical Model of Concurrent Computation; Ph.D. Thesis, University of Edinburgh, CST-4-78, March 1978.Google Scholar
  21. [21]
    Milne, G., Milner, R.: Concurrent Processes and their Syntax; JACM, Vol. 26, No. 2, April 1979.Google Scholar
  22. [22]
    Zave, P.: On the Formal Definition of Processes; Conf. on Parallel Processing, Wayne Sate University, IEEE Computer Society, 1976.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1980

Authors and Affiliations

  • P. R. F. Cunha
  • T. S. E. Maibaum
    • 1
  1. 1.Department of Computer ScienceUniversity of WaterlooWaterlooCanada

Personalised recommendations