Advertisement

An interaction-based language and its typing system

  • Kaku Takeuchi
  • Kohei Honda
  • Makoto Kubo
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 817)

Abstract

We present a small language \(\mathcal{L}\) and its typing system, starting from the idea of interaction, one of the important notions in parallel and distributed computing. \(\mathcal{L}\) is based on, apart from such constructs as parallel composition and process creation, three pairs of communication primitives which use the notion of a session, a semantically atomic chain of communication actions which can interleave with other such chains freely, for high-level abstraction of interactionbased computing. The three primitives enable programmers to elegantly describe complex interactions among processes with a rigorous type discipline similar to ML [4]. The language is given formal operational semantics and a type inference system, regarding which we prove that if a program is well-typed in the typing system, it never causes run-time error due to type inconsistent communication patterns, offering a new foundation for type discipline in parallel programming languages.

Keywords

Operational Semantic Parallel Composition Communicate Sequential Process Communication Primitive Functional Programming Language 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    G. Agha, Actors: A Model of Concurrent Computation in Distributed Systems, MIT Press, 1986.Google Scholar
  2. 2.
    P. America, Operational Semantics of a Parallel Object-Oriented Language. In POPL'86, 1986.Google Scholar
  3. 3.
    D. Berry, R. Milner and D. Turner, A semantics for ML concurrency primitives. In POPL'92, 1992.Google Scholar
  4. 4.
    L. Damas and R. Milner. Principal type-schemes for functional programs. In POPL'82, 1982.Google Scholar
  5. 5.
    M. Hennessy. The Semantics of Programming Languages. Wiley, 1990.Google Scholar
  6. 6.
    C. Hewitt, P. Bishop and R. Steiger, A Universal Modular ACTOR Formalism for Artificial Intelligence. In IJCAI, 1973.Google Scholar
  7. 7.
    C. A. R. Hoare, Communicating sequential processes. Communications of ACM, 1978.Google Scholar
  8. 8.
    C. A. R. Hoare, Communicating Sequential Processes, Prentice Hall, 1985.Google Scholar
  9. 9.
    K. Honda, Types for Dyadic Interaction. In CONCUR'93, LNCS 612, Springer-Verlag, 1993.Google Scholar
  10. 10.
    K. Honda and M. Tokoro, An Object Calculus for Asynchronous Communication. In ECOOP'91, LNCS 512, Springer-Verlag, 1991.Google Scholar
  11. 11.
    K. Honda and N. Yoshida, Combinatory Representation of Mobile Processes. In POPL'94, 1994.Google Scholar
  12. 12.
    C. B. Jones, Constraining interference in an object-based design method, In TAPSOFT'93, LNCS 668, Springer-Verlag, 1993.Google Scholar
  13. 13.
    M. Kubo and A. Sashino, On Some Interaction Machines, in preparation, 1994.Google Scholar
  14. 14.
    J. C. Mitchell, Type Systems for Programming Languages. In Handbook of Theoretical Computer Science B, MIT press, 1990.Google Scholar
  15. 15.
    R. Milner, A Theory of Type Polymorphism in Programming. Journal of Computer and System Sciences, 17, 1978.Google Scholar
  16. 16.
    R. Milner, Polyadic π-Calculus: a tutorial. Logic and Algebra of Specification, Springer-Verlag, 1992.Google Scholar
  17. 17.
    R. Milner, J. Parrow and D. Walker, A calculus of mobile processes, (Parts I and II). Information and Computation, 100, 1992.Google Scholar
  18. 18.
    R. Milner, M. Tofte, and R. Harper, The Definition of Standard ML, MIT press, 1990.Google Scholar
  19. 19.
    H. R. Nielson and F. Nielson, Higher-Order Concurrent Programs with Finite Communication Topology. In POPL'94, 1994.Google Scholar
  20. 20.
    A. Ohori, A compilation method for ML-style polymorphic record calculi. In POPL'92, 1992.Google Scholar
  21. 21.
    A. Ohori and K. Kato, Semantics for Communication Primitives in a Polymorphic Language. In POPL'93, 1993.Google Scholar
  22. 22.
    B. C. Pierce, D. Remy and D. N. Turner, A Typed Higher-Order Programming Language Based on the Pi-Calculus. Manuscript, 1993.Google Scholar
  23. 23.
    B. C. Pierce and D. Sangiorgi. Typing and subtyping for mobile processes. In 1993 IEEE Symposium on Logic in Computer Science, 1993Google Scholar
  24. 24.
    J. H. Reppy. CML: A Higher-Order Concurrent Language. In PLDI'91, 1991.Google Scholar
  25. 25.
    K. Takeuchi, Interaction-Based Programming Language and its Typing System. Master Thesis, Keio University, March 1993 (in Japanese). The English version in preparation.Google Scholar
  26. 26.
    B. Thomsen. A Calculus of Higher Order Communicating Systems. In POPL'89, 1989.Google Scholar
  27. 27.
    V. T. Vasconcelos. Predicative Polymorphism in π-Calculus. In PARLE'94, LNCS, Springer-Verlag, 1994.Google Scholar
  28. 28.
    V. T. Vasconcelos and K. Honda. Principal Typing-Schemes in a Polyadic π-Calculus. In CONCUR'93, LNCS 715, Springer-Verlag, 1993.Google Scholar
  29. 29.
    Y. Yokote and M. Tokoro. The Design and Implementation of ConcurrentSmalltalk. In OOPSLA'86, 1986.Google Scholar
  30. 30.
    A. Yonezawa, ABCL: An Object-Oriented Concurrent System. MIT Press, 1990.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Kaku Takeuchi
    • 1
  • Kohei Honda
    • 1
  • Makoto Kubo
    • 1
  1. 1.Department of Computer ScienceKeio UniversityYokohamaJapan

Personalised recommendations