Types and Subtypes for Client-Server Interactions

  • Simon Gay
  • Malcolm Hole
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1576)

Abstract

We define an extension of the π-calculus with a static type system which supports high-level specifications of extended patterns of communication, such as client-server protocols. Subtyping allows protocol specifications to be extended in order to describe richer behaviour; an implemented server can then be replaced by a refined implementation, without invalidating type-correctness of the overall system. We use the POP3 protocol as a concrete example of this technique.

References

  1. 1.
    G. Boudol. Asynchrony and the π-calculus (note). Rapporte de Recherche 1702, INRJA Sofia-Antipolis, May 1992.Google Scholar
  2. 2.
    S. J. Gay. A sort inference algorithm for the polyadic π-calculus. In Proceedings, 20th ACM Symposium on Principles of Programming Languages. ACM Press, 1993.Google Scholar
  3. 3.
    J.-Y. Girard. Linear Logic. Theoretical Computer Science, 50(1):1–102, 1987.MATHCrossRefMathSciNetGoogle Scholar
  4. 4.
    K. Honda and M. Tokoro. An object calculus for asynchronous communication. In Proceedings of the European Conference on Object-Oriented Programming, LNCS. Springer-Verlag, 1994.Google Scholar
  5. 5.
    K. Honda, V. Vasconcelos, and M. Kubo. Language primitives and type discipline for structured communication-based programming. In Proceedings of the European Symposium on Programming, Lecture Notes in Computer Science. Springer-Verlag, 1998.Google Scholar
  6. 6.
    K. Honda and N. Yoshida. Combinatory representation of mobile processes. In Proceedings, 21st ACM Symposium on Principles of Programming Languages, 1994.Google Scholar
  7. 7.
    N. Kobayashi. A partially deadlock-free typed process calculus. In Proceedings, Twelfth Annual IEEE Symposium on Logic in Computer Science. IEEE Computer Society Press, 1997.Google Scholar
  8. 8.
    N. Kobayashi. A partially deadlock-free typed process calculus. ACM Transactions on Programming Languages and Systems, 20:436–482, 1998.CrossRefGoogle Scholar
  9. 9.
    N. Kobayashi, B. C. Pierce, and Kobayashi D. N. Turner. Linearity and the pi-calculus. In Proceedings, 23rd ACM Symposium on Principles of Programming Languages Google Scholar
  10. 10.
    I. Mackie Lilac: A functional programming language based on linear logic. Journal of Functional Programming,4(4):1–39, October 1994.CrossRefGoogle Scholar
  11. 11.
    R. Milner. The polyadic π-calculus: A tutorial. Technical Report 91-180 Laboratory for Foundations of Computer Science, Department of Computer Science, University of Edinburgh, 1991.Google Scholar
  12. 12.
    R. Milner, J. Parrow, and D. Walker. A calculus of mobile processes, I and II. Information and Computation, 100(1):1–77, September 1992.MATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    J. Myers and M. Rose. Post office protocol version 3, May 1996. Internet Standards RFC 1939.Google Scholar
  14. 14.
    0. Nierstrasz. Regular types for active objects.ACM Sigplan Notices, 28(10):1–15, October 1993.CrossRefGoogle Scholar
  15. 15.
    B. Pierce and D. Sangiorgi. Types and subtypes for mobile processes. In Proceedings, Eighth Annual IEEE Symposium on Logic in Computer Science. IEEE Computer Society Press, 1993.Google Scholar
  16. 16.
    B. C. Pierce and D. N. Turner. Pict: A programming language based on the pi-calculus. Technical Report CSCI 476, Computer Science Department, Indiana University, 1997. To appear in Proof, Language and Interaction: Essays in Honour of Robin Milner, Gordon Plotkin, Colin Stirling, and Mads Tofte, editors, MIT Press, 1998.Google Scholar
  17. 17.
    B. C. Pierce and D. N. Turner. Local type inference. In Proceedings, S5th ACM Symposium on Principles of Programming Languages, 1998.Google Scholar
  18. 18.
    F. Puntigam. Synchronization expressed in types of communication channels. In Proceedings of the European Conference on Parallel Processing (EuroPar’96), volume 1123 of Lecture Notes in Computer Science. Springer-Verlag, 1996.Google Scholar
  19. 19.
    F. Puntigam. Coordination requirements expressed in types for active objects. In M. Aksit and S. Matsuoka, editors, Proceedings of the European Conference on Object-Oriented Programming (ECOOP’97), volume 1241 of Lecture Notes in Computer Science. Springer-Verlag, 1997.Google Scholar
  20. 20.
    K. Takeuchi, K. Honda, and M. Kubo. An interaction-based language and its typing system. In Proceedings of the 6th European Conference on Parallel Languages and Architectures, number 817 in Lecture Notes in Computer Science. Springer-VerlagGoogle Scholar
  21. 21.
    D. N. Turner. The Polymorphic Pi-Calculus: Theory and Implementation. PhD thesis, University of Edinburgh, 1996.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Simon Gay
    • 1
  • Malcolm Hole
    • 1
  1. 1.Department of Computer Science, Royal HollowayUniversityof LondonEgham, SurreyUK

Personalised recommendations