Session-Based Concurrency, Reactively

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10321)

Abstract

This paper concerns formal models for the analysis of communication-centric software systems that feature declarative and reactive behaviors. We focus on session-based concurrency, the interaction model induced by session types, which uses (variants of) the \(\pi \)-calculus as specification languages. While well-established, such process models are not expressive enough to specify declarative and reactive behaviors common in emerging communication-centric software systems. Here we propose the synchronous reactive programming paradigm as a uniform foundation for session-based concurrency. We present correct encodings of session-based calculi into ReactiveML, a synchronous reactive programming language. Our encodings bridge the gap between process specifications and concurrent programs in which session-based concurrency seamlessly coexists with declarative, reactive, timed, and contextual behaviors.

Notes

Acknowledgements

We thank Ilaria Castellani, Cinzia Di Giusto, and the anonymous reviewers for useful remarks and suggestions. This work has been partially sponsored by CNRS PICS project 07313 (SuCCeSS) and EU COST Actions IC1201 (BETTY), IC1402 (ARVI), and IC1405 (Reversible Computation).

References

  1. 1.
    Bartoletti, M., Cimoli, T., Murgia, M., Podda, A.S., Pompianu, L.: Compliance and subtyping in timed session types. In: Graf, S., Viswanathan, M. (eds.) FORTE 2015. LNCS, vol. 9039, pp. 161–177. Springer, Cham (2015). doi: 10.1007/978-3-319-19195-9_11 CrossRefGoogle Scholar
  2. 2.
    Benveniste, A., Caspi, P., Edwards, S.A., Halbwachs, N., Guernic, P.L., de Simone, R.: The synchronous languages 12 years later. Proc. IEEE 91(1), 64–83 (2003)CrossRefGoogle Scholar
  3. 3.
    Bocchi, L., Honda, K., Tuosto, E., Yoshida, N.: A theory of design-by-contract for distributed multiparty interactions. In: Gastin, P., Laroussinie, F. (eds.) CONCUR 2010. LNCS, vol. 6269, pp. 162–176. Springer, Heidelberg (2010). doi: 10.1007/978-3-642-15375-4_12 CrossRefGoogle Scholar
  4. 4.
    Bocchi, L., Yang, W., Yoshida, N.: Timed multiparty session types. In: Baldan, P., Gorla, D. (eds.) CONCUR 2014. LNCS, vol. 8704, pp. 419–434. Springer, Heidelberg (2014). doi: 10.1007/978-3-662-44584-6_29 Google Scholar
  5. 5.
    Bonelli, E., Compagnoni, A.B., Gunter, E.L.: Correspondence assertions for process synchronization in concurrent communications. J. Funct. Program. 15(2), 219–247 (2005)MathSciNetCrossRefMATHGoogle Scholar
  6. 6.
    Boussinot, F., de Simone, R.: The SL synchronous language. IEEE Trans. Softw. Eng. 22(4), 256–266 (1996)CrossRefGoogle Scholar
  7. 7.
    Cano, M., Arias, J., Pérez, J.A.: Session-based Concurrency, Reactively (Extended Version) (2017). http://www.jperez.nl/publications
  8. 8.
    Dardha, O., Giachino, E., Sangiorgi, D.: Session types revisited. In: Proceedings of the PPDP 2012, pp. 139–150 (2012)Google Scholar
  9. 9.
    Gorla, D.: Towards a unified approach to encodability and separation results for process calculi. Inf. Comput. 208(9), 1031–1053 (2010)MathSciNetCrossRefMATHGoogle Scholar
  10. 10.
    Halbwachs, N., Lagnier, F., Ratel, C.: Programming and verifying real-time systems by means of the synchronous data-flow language LUSTRE. IEEE Trans. Softw. Eng. 18(9), 785–793 (1992)CrossRefMATHGoogle Scholar
  11. 11.
    Honda, K., Vasconcelos, V.T., Kubo, M.: Language primitives and type discipline for structured communication-based programming. In: Hankin, C. (ed.) ESOP 1998. LNCS, vol. 1381, pp. 122–138. Springer, Heidelberg (1998). doi: 10.1007/BFb0053567 CrossRefGoogle Scholar
  12. 12.
    Hüttel, H., Lanese, I., Vasconcelos, V.T., Caires, L., Carbone, M., Deniélou, P.-M., Mostrous, D., Padovani, L., Ravara, A., Tuosto, E., Vieira, H.T., Zavattaro, G.: Foundations of session types and behavioural contracts. ACM Comput. Surv. 49(1), 3:1–3:36 (2016)CrossRefGoogle Scholar
  13. 13.
    Kouzapas, D., Yoshida, N., Hu, R., Honda, K.: On asynchronous eventful session semantics. Math. Struct. Comput. Sci. 26(2), 303–364 (2016)MathSciNetCrossRefMATHGoogle Scholar
  14. 14.
    Mandel, L., Pasteur, C.: Reactivity of cooperative systems. In: Müller-Olm, M., Seidl, H. (eds.) SAS 2014. LNCS, vol. 8723, pp. 219–236. Springer, Cham (2014). doi: 10.1007/978-3-319-10936-7_14 Google Scholar
  15. 15.
    Mandel, L., Pasteur, C., Pouzet, M.: ReactiveML, ten years later. In: Falaschi, M., Albert, E. (eds.) Proceedings of the PPDP 2015, pp. 6–17. ACM (2015)Google Scholar
  16. 16.
    Mandel, L., Pouzet, M.: ReactiveML: a reactive extension to ML. In: Proceedings of the PPDP 2005, pp. 82–93. ACM (2005)Google Scholar
  17. 17.
    Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, I. Inf. Comput. 100(1), 1–40 (1992)MathSciNetCrossRefMATHGoogle Scholar
  18. 18.
    Vasconcelos, V.T.: Fundamentals of session types. Inf. Comput. 217, 52–70 (2012)MathSciNetCrossRefMATHGoogle Scholar

Copyright information

© IFIP International Federation for Information Processing 2017

Authors and Affiliations

  1. 1.University of GroningenGroningenThe Netherlands
  2. 2.Inria Grenoble Rhône-AlpesMontbonnot-Saint-MartinFrance
  3. 3.University of Groningen and CWIAmsterdamThe Netherlands

Personalised recommendations