Language primitives and type discipline for structured communication-based programming

  • Kohei Honda
  • Vasco T. Vasconcelos
  • Makoto Kubo
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1381)


We introduce basic language constructs and a type discipline as a foundation of structured communication-based concurrent programming. The constructs, which are easily translatable into the summation-less asynchronous π-calculus, allow programmers to organise programs as a combination of multiple flows of (possibly unbounded) reciprocal interactions in a simple and elegant way, subsuming the preceding communication primitives such as method invocation and rendez-vous. The resulting syntactic structure is exploited by a type discipline à la ML, which offers a high-level type abstraction of interactive behaviours of programs as well as guaranteeing the compatibility of interaction patterns between processes in a well-typed program. After presenting the formal semantics, the use of language constructs is illustrated through examples, and the basic syntactic results of the type discipline are established. Implementation concerns are also addressed.


Typing System Communication Pattern Operational Semantic Interactive Behaviour Concurrent Programming 
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]
    S. Abramsky, S. Gay, and R. Nagarajan, Interaction Categories and Foundations of Typed Concurrent Computing. Deductive Program Design, Springer-Verlag, 1995.Google Scholar
  2. [2]
    G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986.Google Scholar
  3. [3]
    P. America and F. de Boer. Reasoning about Dynamically Evolving Process Structures. Formal Aspects of Computing, 94:269–316, 1994.CrossRefGoogle Scholar
  4. [4]
    G. Berry and G. Boudol. The chemical abstract machine. TCS, 96:217–248, 1992.MathSciNetCrossRefGoogle Scholar
  5. [5]
    B. Courcelle. Fundamental properties of infinite trees. TCS, 25:95–169, 1983.zbMATHMathSciNetCrossRefGoogle Scholar
  6. [6]
    C. Fournet and G. Gonthier. The reflexive chemical abstract machine and the join-calculus. In POPL'96, pp. 372–385, ACM Press, 1996.Google Scholar
  7. [7]
    C.A.R. Hoare. Communicating sequential processes. CACM, 21(8):667–677, 1978.zbMATHGoogle Scholar
  8. [8]
    C.A.R. Hoare. Communicating Sequential Processes. Prentice Hall, 1995.Google Scholar
  9. [9]
    Jones, C.B., Process-Algebraic Foundations for an Object-Based Design Notation. UMCS-93-10-1, Computer Science Department, Manchester University, 1993.Google Scholar
  10. [10]
    K. Honda. Composing processes. In POPL'96, pp. 344–357, ACM Press, 1996.Google Scholar
  11. [11]
    K. Honda, V. Vasconcelos, and M. Kubo. Language primitives and type disciplines for structured communication-based programming. Full version of this paper, in preparation.Google Scholar
  12. [12]
    S. Peyton Jones, A. Gordon, and S. Finne. Concurrent Haskell. In POPL'96, pp. 295–308, ACM Press, 1996.Google Scholar
  13. [13]
    N. Kobayashi, B. Pierce, and D. Turner. Linearity and the pi-calculus. In POPL'96, pp. 358–371, ACM Press, 1996.Google Scholar
  14. [14]
    L. Lopes, F. Silva, and V. Vasconcelos. A framework for compiling object calculi. In preparation.Google Scholar
  15. [15]
    R. Milner. Communication and Concurrency. C.A.R. Hoare Series Editor. Prentice Hall, 1989.Google Scholar
  16. [16]
    R. Milner. Functions as processes. MSCS, 2(2):119–141, 1992.zbMATHMathSciNetGoogle Scholar
  17. [17]
    R. Milner, Polyadic π-Calculus: a tutorial. Logic and Algebra of Specification, Springer-Verlag, 1992.Google Scholar
  18. [18]
    R. Milner, J. Parrow, and D. Walker. A calculus of mobile processes, Parts I and II. Journal of Information and Computation, 100:1–77, September 1992.MathSciNetCrossRefGoogle Scholar
  19. [19]
    R. Milner and M. Tofte. The Definition of Standard ML. MIT Press, 1991.Google Scholar
  20. [20]
    H. R. Nielson and F. Nielson. Higher-order concurrent programs with finite communication topology. In POPL'94. ACM Press, 1994.Google Scholar
  21. [21]
    A. Ohori and K. Kato. Semantics for communication primitives in a polymorphic language. In POPL 93. ACM Press, 1993.Google Scholar
  22. [22]
    A. Ohori. A compilation method for ML-style polymorphic record calculi. In POPL 92, pp. 154–165. ACM Press, 1992.Google Scholar
  23. [23]
    B. Pierce and D. Turner. Pict: A programming language based on the pi-calculus. CSCI Technical Report 476, Indiana University, March 1997.Google Scholar
  24. [24]
    B. Pierce, and D. Sangiorgi, Typing and subtyping for mobile processes. In LICS'93, pp. 187–215, 1993.Google Scholar
  25. [25]
    B. Pierce and D. Sangiorgi, Behavioral Equivalence in the Polymorphic Pi-Calculus. POPL 97, ACM Press, 1997.Google Scholar
  26. [26]
    J-H. Reppy. CML: A higher-order concurrent language. In PLDI 91, pp. 293–305. ACM Press, 1991.Google Scholar
  27. [27]
    K. Takeuchi, K. Honda, and M. Kubo. An interaction-based programming language and its typing system. In PARLE'94, volume 817 of LNCS, pp. 398–413. Springer-Verlag, July 1994.Google Scholar
  28. [28]
    US Government Printing Office, Washington DC. The Ada Programming Language, 1983.Google Scholar
  29. [29]
    V. Vasconcelos. Typed concurrent objects. In ECOOP'94, volume 821 of LNCS, pp. 100–117. Springer-Verlag, 1994.Google Scholar
  30. [30]
    V. Vasconcelos and K. Honda, Principal Typing Scheme for Polyadic π-Calculus. CONCUR'93, Volume 715 of LNCS, pp.524–538, Springer-Verlag, 1993.Google Scholar
  31. [31]
    V. Vasconcelos and M. Tokoro. A typing system for a calculus of objects. In 1st ISOTAS, volume 742 of LNCS, pp. 460–474. Springer-Verlag, November 1993.Google Scholar
  32. [32]
    Y. Yokote and M. Tokoro. Concurrent programming in ConcurrentSmalltalk. In Yonezawa and Tokoro [34].Google Scholar
  33. [33]
    A. Yonezawa, editor. ABCL, on Object-Oriented Concurrent System. MIT Press, 1990.Google Scholar
  34. [34]
    A. Yonezawa and M. Tokoro, editors. Object-Oriented Concurrent Programming. MIT Press, 1987.Google Scholar
  35. [35]
    N. Yoshida, Graph Types for Monadic Mobile Processes. In FST/TCS'16, volume 1180 of LNCS, pp. 371–386, Springer-Verlag, 1996. The full version as LFCS Technical Report, ECS-LFCS-96-350, 1996.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • Kohei Honda
    • 1
  • Vasco T. Vasconcelos
    • 2
  • Makoto Kubo
    • 3
  1. 1.Dept. of Computer ScienceUniversity of EdinburghUK
  2. 2.Dept. of Computer ScienceUniversity of LisbonPortugal
  3. 3.Dept. of Computer ScienceChiba University of CommerceJapan

Personalised recommendations