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 
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.


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.zbMATHGoogle 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.zbMATHCrossRefGoogle 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.zbMATHCrossRefGoogle Scholar
  6. Dijkstra, E.W. 1982. Selected Writings on Computing: A Personal Perspective. SpringerVerlag, New York, 147–160.zbMATHCrossRefGoogle 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.zbMATHCrossRefGoogle Scholar
  9. Hoare, C.A.R. 1978. Communicating sequential processes. Communications of the ACM 21, 8 (August), 666–677.MathSciNetzbMATHCrossRefGoogle Scholar
  10. Hoare, C.A.R. 1985. Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs, NJ.zbMATHGoogle 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.zbMATHCrossRefGoogle 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.zbMATHCrossRefGoogle 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.zbMATHCrossRefGoogle 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.zbMATHCrossRefGoogle Scholar
  20. Wirth, N. 1971. The programming language Pascal. Acta Informatica 1, 35–63.zbMATHCrossRefGoogle Scholar
  21. Wirth, N. 1977. Modula—A language for modular multiprogramming. Software—Practice and Experience 7, 1 (January–February), 3–35.MathSciNetzbMATHGoogle Scholar
  22. Wirth, N. 1982. Programming in Modula-2. Springer-Verlag, New York.zbMATHCrossRefGoogle Scholar

Copyright information

© Per Brinch Hansen 1987

Authors and Affiliations

  • Per Brinch Hansen

There are no affiliations available

Personalised recommendations