MobilityReadingGroup

π-calculus, Session Types research at Imperial College

Session-Based Communication Optimisation for Higher-Order Mobile Processes
Dimitris MOSTROUS , Nobuko YOSHIDA
9th International Conference on Typed Lambda Calculi and Applications (TLCA 2009) p. 203 - 218

In this paper we solve an open problem posed in our previous work on asynchronous subtyping [12], extending the method to higher-order session communication and functions. Our system provides two complementary methods for communication code optimisation, mobile code and asynchronous permutation of session actions, within processes that utilise structured, typed communications. In order to prove transitivity of our coinductive subtyping relation, we uniformly deal with type-manifested asynchrony, linear functional types, and contravariant components in higher-order communications. For the runtime system we propose a new compact formulation that takes into account stored higher-order values with open sessions, as well as asynchronous commutativity. In spite of the enriched type structures, we construct an algorithmic subtyping system, which is sound and complete with respect to the coinductive subtyping relation. The paper also demonstrates the expressiveness of our typing system with an e-commerce example, where optimised processes can interact respecting the expected sessions.

@inproceedings{MY2009,
  author = {Dimitris Mostrous and Nobuko Yoshida},
  title = {{Session-Based Communication Optimisation for Higher-Order Mobile Processes}},
  booktitle = {9th International Conference on Typed Lambda Calculi and Applications},
  series = {LNCS},
  volume = {5608},
  pages = {203--218},
  publisher = {Springer},
  year = 2009
}
@inproceedings{MY2009,
  author = {Dimitris Mostrous and Nobuko Yoshida},
  title = {{Session-Based Communication Optimisation for Higher-Order Mobile Processes}},
  booktitle = {9th International Conference on Typed Lambda Calculi and Applications},
  series = {LNCS},
  volume = {5608},
  pages = {203--218},
  publisher = {Springer},
  doi = "10.1007/978-3-642-02273-9_16",
  year = 2009
}