2017
DOI: 10.1007/978-3-319-59746-1_6
|View full text |Cite
|
Sign up to set email alerts
|

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

Abstract: 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: ( ) 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 ( ) a parameterised monad with a data structure … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
11
0

Year Published

2017
2017
2020
2020

Publication Types

Select...
4
3

Relationship

3
4

Authors

Journals

citations
Cited by 13 publications
(11 citation statements)
references
References 36 publications
0
11
0
Order By: Relevance
“…Later work by Dardha et al [2012] helped merge the linear type systems of Kobayashi with Honda's session types, which facilitated the incorporation of session types in mainstream programming languages like Go [Lange et al 2018], OCaml [Imai et al 2019;Padovani 2017], and Java [Hu et al 2010]. These works focus on adding session-typed support for the Actor model in existing languages, but do not target proving functional correctness of programs.…”
Section: Session Typesmentioning
confidence: 99%
“…Later work by Dardha et al [2012] helped merge the linear type systems of Kobayashi with Honda's session types, which facilitated the incorporation of session types in mainstream programming languages like Go [Lange et al 2018], OCaml [Imai et al 2019;Padovani 2017], and Java [Hu et al 2010]. These works focus on adding session-typed support for the Actor model in existing languages, but do not target proving functional correctness of programs.…”
Section: Session Typesmentioning
confidence: 99%
“…For instance, if it is a hit, Svr will send a Hit message to Atk to notify it of the outcome, and also a Hit message with the coordinate being attacked to Def; similarly if it is a miss, Miss message will be sent instead. This is written in Scribble as a choice statement (line [7][8][9][10][11][12][13][14][15][16][17][18][19][20]. The syntax choice at Svr means the choice is being made at the role Svr, and also that Svr will the first sender of message in each of the possible branches: the hit branch on lines 8-9 or the miss branch on lines 11-12.…”
Section: The Scribble Protocol Languagementioning
confidence: 99%
“…Padovani's FuSe [28,22] infers and type checks usage of binary session-based communication in OCaml, and uses a hybrid static/dynamic linearity check similar to the hybrid verification approach in [11]. Session-ocaml [13] implements session types in OCaml with lenses overcoming a linearity issue but only treats binary session types.…”
Section: Related Workmentioning
confidence: 99%
“…Future work includes extensions to the classical linear logic-based framework, including multiparty session types [10,11]. Encodings of session π-calculi to the λ-calculus have been used to implement session primitives in functional languages such as Haskell (see a recent survey [32]), OCaml [24,34,35] and Scala [48]. Following this line of work, we plan to develop encoding-based implementations of this work as embedded DSLs.…”
Section: Related Work and Concluding Remarksmentioning
confidence: 99%