Algebraic specification of a communication scheduler

  • Mathai Joseph
  • Abha Moitra
Colloquium On Software Engineering Views Of Concurrency
Part of the Lecture Notes in Computer Science book series (LNCS, volume 186)


A distributed programming language normally incorporates one mechanism by which processes communicate with each other. This mechanism can be used to transfer information or to synchronize the flow of control in the program. Different communication mechanisms have been proposed for different languages. In this paper, we provide a common framework in which these mechanisms can be examined independently of the languages in which they may be embedded. Operationally, this framework is a communication scheduler : formally, it is specified algebraically as a data type. A number of different communication mechanisms, such as synchronous and asynchronous message passing, broadcasts and remote procedure calls, are modelled and, as an illustration of how global properties can be analysed, we consider the problem of deadlock detection.


Data Type Communication Mechanism Asynchronous Communication Synchronous Communication Abstract Data Type 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    A.J. Bernstein, Output guards and nondeterminism in “Communicating Sequential Processes”, ACM Trans. Prog. Lang. and Sys., 2, 2, April 1980, pp. 234–238.Google Scholar
  2. 2.
    K.M. Chandy, J. Misra, L.M. Haas, Distributed deadlock detection, ACM Trans. on Comp. Sys., 1, 2, May 1983, pp. 144–156.Google Scholar
  3. 3.
    P.R.F. Cunha, T.S.E. Maibaum, A communication data type for message oriented programming, Proc. IV Intl. Symp. on Prog., Springer-Verlag, Lecture Notes in Computer Science, Vol. 83, 1980, pp. 79–91.Google Scholar
  4. 4.
    E.W. Dijkstra, C.S. Scholten, Termination detection for diffusing computations, Inf. Proc. Lett., 11, 1, August 1980, pp. 1–4.Google Scholar
  5. 5.
    J.A. Feldman, High level programming for distributed computing, Comm. ACM, 21, 11, November 1978, pp. 934–941.Google Scholar
  6. 6.
    N. Francez, Distributed termination, ACM Trans. on Prog. Lang. and Sys., 2, 1, January 1980, pp. 42–55.Google Scholar
  7. 7.
    J.A. Goguen, Abstract errors for abstract data types, in Formal Description of Programming Concepts, E.J. Neuhold (Ed.), North Holland, 1978, pp. 491–525.Google Scholar
  8. 8.
    J.A. Goguen, J.W. Thatcher and E.G. Wagner, An initial algebra approach to the specification, correctness, and implementation of abstract data types, in Current Trends in Programming Methodology Vol. IV: Data Structuring, R.T. Yeh (Ed.), Prentice-Hall, Englewood Cliffs, 1978, pp. 80–149.Google Scholar
  9. 9.
    J.V. Guttag and J.J. Horning, The algebraic specification of abstract data types, Acta Inform., 10, 1, 1978, pp. 27–52.Google Scholar
  10. 10.
    C.A.R. Hoare, Communicating sequential processes, Comm. ACM, 21, 8, August 1978, pp. 666–677.Google Scholar
  11. 11.
    M.E. Majster, Limits of the ‘algebraic’ specification of abstract data types, SIGPLAN Notices, 12, 10, October 1977, pp. 37–42.Google Scholar
  12. 12.
    A. Moitra, Direct implementation of algebraic specification of abstract data types, IEEE Trans. on Software Eng., SE-8, 1, January 1982, pp. 12–20.Google Scholar
  13. 13.
    B.J. Nelson, Remote procedure call, Tech. Rep., Computer Science Department, Carnegie-Mellon University, May 1981.Google Scholar
  14. 14.
    J.W. Thatcher, E.G. Wagner and J.B. Wright, Data type specification: parameterization and the power of specification techniques, in Proc. of the Tenth Annual ACM Symp. on Theory of Computing (1978) 119–132.Google Scholar
  15. 15.
    N. Wirth, Programming in Modula 2, Springer-Verlag, 1982.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1985

Authors and Affiliations

  • Mathai Joseph
    • 1
  • Abha Moitra
    • 2
  1. 1.Computer Science GroupTata Institute of Fundamental ResearchColabaIndia
  2. 2.Department of Computer ScienceCornell UniversityIthaca

Personalised recommendations