Joyce—A Programming Language for Distributed Systems

  • Per Brinch Hansen


This paper describes a secure programming language called Joyce based on CSP and Pascal. Joyce permits unbounded (recursive) activation of communicating agents. The agents exchange messages through synchronous channels. A channel can transfer messages of different types between two or more agents. A compiler can check message types and ensure that agents use disjoint sets of variables only. The use of Joyce is illustrated by a variety of examples.


User Agent Initial Agent Output Polling Port Statement Port Type 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Baiardi, F., Ricci, L., and Vanneschi, M. 1984. Static checking of interprocess communication in ECSP. ACM SIGPLAN Notices 19, 6 (June), 290–299.CrossRefGoogle Scholar
  2. Brinch Hansen, P. 1973. Operating System Principles. Prentice-Hall, Englewood Cliffs, NJ.MATHGoogle Scholar
  3. Brinch Hansen, P. 1975. The programming language Concurrent Pascal. IEEE Transactions on Software Engineering 1, 2 (June), 199–205.CrossRefGoogle Scholar
  4. Brinch Hansen, P. 1976. The Solo operating system. Software-Practice and Experience 6, 2 (April-June), 141–205.MATHCrossRefGoogle Scholar
  5. Crookes, D., and Elder, J.W.G. 1984. An experiment in language design for distributed systems. Software-Practice and Experience 14, 10 (October), 957–971.MATHCrossRefGoogle Scholar
  6. Dijkstra, E.W. 1982. Selected Writings on Computing: A Personal Perspective. SpringerVerlag, New York, 147–160.MATHCrossRefGoogle Scholar
  7. Hoare, C.A.R. 1973. Hints on programming language design. Computer Science Department, Stanford University, Stanford, CA, (December) .Google Scholar
  8. Hoare, C.A.R. 1974. Monitors: An operating system structuring concept. Communications of the ACM 17, 10 (October), 549–557.MATHCrossRefGoogle Scholar
  9. Hoare, C.A.R. 1978. Communicating sequential processes. Communications of the ACM 21, 8 (August), 666–677.MathSciNetMATHCrossRefGoogle Scholar
  10. Hoare, C.A.R. 1985. Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs, NJ.MATHGoogle Scholar
  11. Holt, R.C. 1982. A short introduction to Concurrent Euclid. ACM SIGPLAN Notices 17, (May), 60–79.CrossRefGoogle Scholar
  12. Inmos, Ltd. 1984. occam Programming Manual. Prentice-Hall, Englewood Cliffs, NJ.Google Scholar
  13. Jazayeri, M., Ghezzi, C., Hoffman, D., Middleton, D., and Smotherman, M. 1980. CSP/80: A language for communicating sequential processes. IEEE Compcon Fall, (September), 736–740.Google Scholar
  14. Lampson, B.W., and Redell, D.D. 1980. Experience with processes and monitors in Mesa. Communications of the ACM 23, 2 (February), 105–117.CrossRefGoogle Scholar
  15. Roper, T.J., and Barter, C.J. 1981. A communicating sequential process language and implementation. Software-Practice and Experience 11, 11 (November), 1215–1234.MATHCrossRefGoogle Scholar
  16. Roubine, O., and Heliar, J.-C. 1980. Parallel processing in Ada. In On the Construction of Programs, R.M. McKeag, and A.M. Macnaghten, Eds. Cambridge University Press, Cambridge, 193–212.Google Scholar
  17. Silberschatz, A. 1979. Communication and synchronization in distributed systems. IEEE Transactions on Software Engineering 5, 6 (November), 542–546.MATHCrossRefGoogle Scholar
  18. Welsh, J., Sneeringer, W.J., and Hoare, C.A.R. 1977. Ambiguities and insecurities in Pascal. Software-Practice and Experience 7, 6 (November-December), 685–696.MATHCrossRefGoogle Scholar
  19. Welsh, J., and Bustard, D.W. 1979. Pascal-Plus Another language for modular multiprogramming. Software—Practice and Experience 9, 11 (November), 947–957.MATHCrossRefGoogle Scholar
  20. Wirth, N. 1971. The programming language Pascal. Acta Informatica 1, 35–63.MATHCrossRefGoogle Scholar
  21. Wirth, N. 1977. Modula—A language for modular multiprogramming. Software—Practice and Experience 7, 1 (January–February), 3–35.MathSciNetMATHGoogle Scholar
  22. Wirth, N. 1982. Programming in Modula-2. Springer-Verlag, New York.MATHCrossRefGoogle Scholar

Copyright information

© Per Brinch Hansen 1987

Authors and Affiliations

  • Per Brinch Hansen

There are no affiliations available

Personalised recommendations