Abstract
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.
Chapter PDF
Keywords
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.
References
S. Abramsky, S. Gay, and R. Nagarajan, Interaction Categories and Foundations of Typed Concurrent Computing. Deductive Program Design, Springer-Verlag, 1995.
G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986.
P. America and F. de Boer. Reasoning about Dynamically Evolving Process Structures. Formal Aspects of Computing, 94:269–316, 1994.
G. Berry and G. Boudol. The chemical abstract machine. TCS, 96:217–248, 1992.
B. Courcelle. Fundamental properties of infinite trees. TCS, 25:95–169, 1983.
C. Fournet and G. Gonthier. The reflexive chemical abstract machine and the join-calculus. In POPL'96, pp. 372–385, ACM Press, 1996.
C.A.R. Hoare. Communicating sequential processes. CACM, 21(8):667–677, 1978.
C.A.R. Hoare. Communicating Sequential Processes. Prentice Hall, 1995.
Jones, C.B., Process-Algebraic Foundations for an Object-Based Design Notation. UMCS-93-10-1, Computer Science Department, Manchester University, 1993.
K. Honda. Composing processes. In POPL'96, pp. 344–357, ACM Press, 1996.
K. Honda, V. Vasconcelos, and M. Kubo. Language primitives and type disciplines for structured communication-based programming. Full version of this paper, in preparation.
S. Peyton Jones, A. Gordon, and S. Finne. Concurrent Haskell. In POPL'96, pp. 295–308, ACM Press, 1996.
N. Kobayashi, B. Pierce, and D. Turner. Linearity and the pi-calculus. In POPL'96, pp. 358–371, ACM Press, 1996.
L. Lopes, F. Silva, and V. Vasconcelos. A framework for compiling object calculi. In preparation.
R. Milner. Communication and Concurrency. C.A.R. Hoare Series Editor. Prentice Hall, 1989.
R. Milner. Functions as processes. MSCS, 2(2):119–141, 1992.
R. Milner, Polyadic π-Calculus: a tutorial. Logic and Algebra of Specification, Springer-Verlag, 1992.
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.
R. Milner and M. Tofte. The Definition of Standard ML. MIT Press, 1991.
H. R. Nielson and F. Nielson. Higher-order concurrent programs with finite communication topology. In POPL'94. ACM Press, 1994.
A. Ohori and K. Kato. Semantics for communication primitives in a polymorphic language. In POPL 93. ACM Press, 1993.
A. Ohori. A compilation method for ML-style polymorphic record calculi. In POPL 92, pp. 154–165. ACM Press, 1992.
B. Pierce and D. Turner. Pict: A programming language based on the pi-calculus. CSCI Technical Report 476, Indiana University, March 1997.
B. Pierce, and D. Sangiorgi, Typing and subtyping for mobile processes. In LICS'93, pp. 187–215, 1993.
B. Pierce and D. Sangiorgi, Behavioral Equivalence in the Polymorphic Pi-Calculus. POPL 97, ACM Press, 1997.
J-H. Reppy. CML: A higher-order concurrent language. In PLDI 91, pp. 293–305. ACM Press, 1991.
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.
US Government Printing Office, Washington DC. The Ada Programming Language, 1983.
V. Vasconcelos. Typed concurrent objects. In ECOOP'94, volume 821 of LNCS, pp. 100–117. Springer-Verlag, 1994.
V. Vasconcelos and K. Honda, Principal Typing Scheme for Polyadic π-Calculus. CONCUR'93, Volume 715 of LNCS, pp.524–538, Springer-Verlag, 1993.
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.
Y. Yokote and M. Tokoro. Concurrent programming in ConcurrentSmalltalk. In Yonezawa and Tokoro [34].
A. Yonezawa, editor. ABCL, on Object-Oriented Concurrent System. MIT Press, 1990.
A. Yonezawa and M. Tokoro, editors. Object-Oriented Concurrent Programming. MIT Press, 1987.
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.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Honda, K., Vasconcelos, V.T., Kubo, M. (1998). Language primitives and type discipline for structured communication-based programming. In: Hankin, C. (eds) Programming Languages and Systems. ESOP 1998. Lecture Notes in Computer Science, vol 1381. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0053567
Download citation
DOI: https://doi.org/10.1007/BFb0053567
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-64302-9
Online ISBN: 978-3-540-69722-0
eBook Packages: Springer Book Archive