Skip to main content
Log in

On the design and specification of message oriented programs

  • Published:
International Journal of Computer & Information Sciences Aims and scope Submit manuscript

Abstract

Processes are building blocks for the modeling of environments in which parallel and distributed processing occurs. In parallel programming they play the role of standard units (as do subroutines or procedures in sequential programming). Process communication and synchronization can be achieved either through shared variables (common address space) or by message transmission. It has been shown that the message transmission mechanism leads to a more general computational structure. In this paper we develop the beginnings of a methodology to deal with what we call message oriented programming. We note in passing that the methodology for programming with shared variables is well developed and shows a development leading from operational (automata oriented) constructs (semaphores) to high level programming constructs (critical regions and then monitors). Recent mathematical theories of message oriented programming deal with the subject from an operational point of view. However, the models are too far removed from the control and data structures of programs to guide the designer in constructing a process. To be able to bridge this gap between program specification and program implementation (expressed in the high level language that we use), we resort to a definitional specification technique based on the concept of abstract data type. The specification technique is used in conjunction with some useful design principles to illustrate our ideas via solutions to well-known problems. The two main principles we discuss are: differences (and needs) for definitions of process and message structures in a given application and the concepts of module strength and module coupling as put forward by Myers. Finally, we illustrate how the high level definitional technique leads us to a straightforward method for studying some properties of message oriented programs. We give an example of proving the deadlock freeness of a solution to the consumer and producer problem.

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. F. Baskett, J. H. Howard, and J. T. Montague, “Task communication in DEMOS,”Proceedings of the 6th ACM Symposium on O. S. Principles (1977).

  2. P. Brinch Hansen, “The nucleus of an operating system,”Comm. ACM 13:238–241, 250 (April 1970).

    Google Scholar 

  3. P. Brinch Hansen, “A comparison for two synchronizing concepts,”Acta Informatica 1:190–199 (1972).

    Google Scholar 

  4. P. Brinch Hansen, “Structured Multi-Programming,”Comm. ACM 15:574–578 (July 1972).

    Google Scholar 

  5. P. Brinch Hansen,Operating System Principles (Prentice-Hall, Englewood Cliffs, New Jersey, 1973).

    Google Scholar 

  6. R. H. Campbell and A. N. Habermann, “The Specification of Process Synchronization by Path Expression,”Lecture Notes in Computer Science, Vol. 16 (Springer-Verlag, 1974).

  7. T. E. Cheatham, “The recent evolution of programming languages,”IFIP 71, Vol. 1 C. Freiman, Ed., pp. 289–313.

  8. D. R. Cheriton, “Multi-Process Structuring and the Thoth Operating System,” Ph.D. Thesis, University of Waterloo (August 1978).

  9. D. R. Cheriton, M. A. Malcolm, L. S. Melen, and G. R. Sager, “Thoth, A portable real-time operating system,”Comm. ACM 22 (February 1979).

  10. P. J. Courtois, F. Heymans, and D. L. Parnas, “Concurrent control with ‘Readers’ and ‘Writers,’ ”Comm. ACM 14:667–668 (October 1971).

    Google Scholar 

  11. P. R. F. Cunha and T. S. E. Maibaum, “A communications data type for message oriented programming,” presented at the 4ième Colloque International sur la Programmation, Paris (April 1980).

  12. O. J. Dahl, “Hierarchical program structures,” inStructured Programming, by O. J. Dahl, E. W. Dijkstra, C. A. R. Hoare (Academic Press, New York, 1972).

    Google Scholar 

  13. J. B. Dennis, “Modularity,” inAdvanced Course on Software Engineering, F. Bauer, Ed. (Springer-Verlag, 1973).

  14. E. W. Dijkstra, “Cooperating sequential processes,”in Programming Languages, F. Genuys, Ed. (Academic Press, New York, 1968), pp. 43–112.

    Google Scholar 

  15. E. W. Dijkstra, “Notes on structured programming,”in Structured Programming, by O. J. Dahl, E. W. Dijkstra, C. A. R. Hoare (Academic Press, London, 1972).

    Google Scholar 

  16. J. A. Goguen, J. W. Thatcher, E. G. Wagner, and J. F. Wright, “An Initial Algebra Approach to the Specification, Correctness and Implementation of Abstract Data Types,” IBM Research Report RC 6487 (1976).

  17. J. Guttag, “The Specification and Application to Programming of Abstract Data Types,” Ph.D. Thesis, CSRG TR 59, University of Toronto (September 1975).

  18. A. N. Habermann, “On the concurrency of parallel processes,”in Perspectives on Computer Science, A. Jones, Ed. (Academic Press, London, 1977), pp. 77–90.

    Google Scholar 

  19. C. A. R. Hoare, “Towards a theory of parallel programming,” International Seminar on O. S. Techniques, Belfast, Northern Ireland (August–September 1971).

  20. C. A. R. Hoare, “Proof of correctness of data representation,”Acta Informatica 1: 271–281 (1972).

    Google Scholar 

  21. C. A. R. Hoare, “Monitors, an operating system structuring concept,”Comm. ACM 17:549–557 (1974).

    Google Scholar 

  22. C. A. R. Hoare, ”Communicating sequential processes,”Comm. ACM 21:666–677 (August 1978).

    Google Scholar 

  23. A. J. Jammel and H. G. Stiegler, “Managers versus monitors,”Proceedings of the IFIP77, pp. 827–830.

  24. R. M. Keller, “Formal verification of parallel programs,”Comm. ACM 19:371–385 (July 1976).

    Google Scholar 

  25. P. J. Landin, “The mechanical evaluation of expressions,”Computer J. 6 (4):308–320 (1964).

    Google Scholar 

  26. B. H. Liskov and S. Zilles, “Programming with abstract data types,”Proceedings Conference on Very High Level Languages, SIGPLAN, Vol. 9 (April 1974).

  27. B. H. Liskov and S. Zilles, “Specification for data abstractions,”IEEE Transactions on Software Engineering, SE-1 (March 1975).

  28. D. B. MacQueen, ”Models for distributed computing,”Proceedings EEC/IRIA Course on the Design of Distributed Processing, Nice, France (July 1978).

    Google Scholar 

  29. E. G. Manning and R. W. Peebles, “A homogeneous network for data-sharing communications,”Computer Networks 1:211–224 (1977).

    Google Scholar 

  30. G. Milne, “A Mathematical Model of Concurrent Computation,” Ph.D. Thesis, University of Edinburgh, CST-4-78 (March 1978).

  31. G. Milne, “Scheduling within a process model of computation,” 1st European Conference on Parallel and Distributed Processing, Toulouse, France (1979).

    Google Scholar 

  32. G. Milne and R. Milner, “Concurrent processes and their syntax,”J. ACM 26 (2) (April 1979).

  33. G. J. Myers,Composite/Structured Design (Van Nostrand Reinhold Co., 1978).

  34. D. L. Parnas, “Some conclusions from an experiment in software engineering,”Proceedings of the 1972 FJCC.

  35. D. J. Parnas, “A technique for software module specification with examples,”Comm. ACM 15:330–336 (May 1972).

    Google Scholar 

  36. D. J. Parnas, “On the criteria to be used in decomposing systems into modules,”Comm. ACM 15:1053–1058 (December 1972).

    Google Scholar 

  37. H. Vantilborgh and A. van Lawsweerde, “On an extension of Dijkstra's semophore primitives,”Inform. Proc. Letters 1:181–186 (1972).

    Google Scholar 

  38. P. Zave, “On the formal definition of processes,” Conference on Parallel Processing, Wayne State University, IEEE Computer Society (1976).

  39. P. Zave, “A design tool for real-time processes,” Conference on Information Sciences and Systems, Johns Hopkins University (1977).

  40. S. N. Zilles, “Algebraic Specification of Data Types,” Proj. MAC Report 11, Massachusetts Institute of Technology, Cambridge, Massachusetts (1974), pp. 25–28.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

This work was supported by a research grant (to C. J. Lucena) from the J. S. Guggenheim Memorial Foundation and also by the Natural Sciences and Engineering Research Council of Canada.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Cunha, P.R.F., Lucena, C.J. & Maibaum, T.S.E. On the design and specification of message oriented programs. International Journal of Computer and Information Sciences 9, 161–191 (1980). https://doi.org/10.1007/BF00977783

Download citation

  • Received:

  • Revised:

  • Issue Date:

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

Key words

Navigation