Session-ocaml: A Session-Based Library with Polarities and Lenses

Abstract : We propose session-ocaml, a novel library for session-typed concurrent/distributed programming in OCaml. Our technique solely relies on parametric polymorphism, which can encode core session type structures with strong static guarantees. Our key ideas are: (1) polarised session types, which give an alternative formulation of duality enabling OCaml to automatically infer an appropriate session type in a session with a reasonable notational overhead; and (2) a parameterised monad with a data structure called ‘slots’ manipulated with lenses, which can statically enforce session linearity and delegations. We show applications of session-ocaml including a travel agency usecase and an SMTP protocol.
Type de document :
Communication dans un congrès
Jean-Marie Jacquet; Mieke Massink. 19th International Conference on Coordination Languages and Models (COORDINATION), Jun 2017, Neuchâtel, Switzerland. Springer International Publishing, Lecture Notes in Computer Science, LNCS-10319, pp.99-118, 2017, Coordination Models and Languages. 〈10.1007/978-3-319-59746-1_6〉
Liste complète des métadonnées

https://hal.inria.fr/hal-01657342
Contributeur : Hal Ifip <>
Soumis le : mercredi 6 décembre 2017 - 15:47:35
Dernière modification le : mercredi 6 décembre 2017 - 15:49:46

Fichier

 Accès restreint
Fichier visible le : 2020-01-01

Connectez-vous pour demander l'accès au fichier

Licence


Distributed under a Creative Commons Paternité 4.0 International License

Identifiants

Citation

Keigo Imai, Nobuko Yoshida, Shoji Yuen. Session-ocaml: A Session-Based Library with Polarities and Lenses. Jean-Marie Jacquet; Mieke Massink. 19th International Conference on Coordination Languages and Models (COORDINATION), Jun 2017, Neuchâtel, Switzerland. Springer International Publishing, Lecture Notes in Computer Science, LNCS-10319, pp.99-118, 2017, Coordination Models and Languages. 〈10.1007/978-3-319-59746-1_6〉. 〈hal-01657342〉

Partager

Métriques

Consultations de la notice

32