Monitoring Sessions in OCaml. In this section we illustrate the key aspects of an OCaml module that implements λCoS commu- nication primitives. Instead of building the primitives from scratch, we obtain them as wrappers of the corresponding primitives provided by FuSe, an OCaml library of binary sessions [Xxxxxxxx 2017]. This way we do not have to delve into low-level details concerning the encoding of session types or the implementation of the session primitives and instead we can focus on the aspects strictly related to contract monitoring. The fact that we can build λCoS primitives on top of FuSe is a sign that our monitoring technique is modular and should be portable to other session libraries for possibly different programming languages. Even though FuSe has its own OCaml representation of session types, we keep using the metavari- xxxxx T and S to improve readability. In particular, we write T st for the OCaml type that denotes a lone (i.e., unmonitored) FuSe endpoint with session type T . Similarly, we write T mt for the OCaml type that denotes a possibly monitored endpoint. OCaml’s support for parametric polymorphism in conjunction to FuSe’s representation of session types makes it possible to also represent session type variables standing for unknown session types. Hereafter we use A, B to range over session type variables and A st, A mt for their corresponding representations in FuSe and our λCoS imple- mentation. The FuSe representation of session types makes it easy to switch from a session type to its dual [Xxxxxxxx 2017]. We will write A st to refer to the dual of A st. Concerning the session communication primitives, we use the prefix FuSe to disambiguate them from those we are going to implement. As an example,
Appears in 2 contracts
Samples: Chaperone Contracts for Higher Order Sessions, Chaperone Contracts for Higher Order Sessions
Monitoring Sessions in OCaml. In this section we illustrate the key aspects of an OCaml module that implements λCoS commu- nication primitives. Instead of building the primitives from scratch, we obtain them as wrappers of the corresponding primitives provided by FuSe, an OCaml library of binary sessions Xxxxxxxx [Xxxxxxxx 2017]. This way we do not have to delve into low-level details concerning the encoding of session types or the implementation of the session primitives and instead we can focus on the aspects strictly related to contract monitoring. The fact that we can build λCoS primitives on top of FuSe is a sign that our monitoring technique is modular and should be portable to other session libraries for possibly different programming languages. Even though FuSe has its own OCaml representation of session types, we keep using the metavari- xxxxx metavariables T and S to improve readability. In particular, we write T st for the OCaml type that denotes a lone (i.e., unmonitored) FuSe endpoint with session type T . Similarly, we write T mt for the OCaml type that denotes a possibly monitored endpoint. OCaml’s support for parametric polymorphism in conjunction to FuSe’s representation of session types makes it possible to also represent session type variables standing for unknown session types. Hereafter we use A, B to range over session type variables and A st, A mt for their corresponding representations in FuSe and our λCoS imple- mentationimplementation. The FuSe representation of session types makes it easy to switch from a session type to its dual Xxxxxxxx [Xxxxxxxx 2017]. We will write A st to refer to the dual of A st. Concerning the session communication primitives, we use the prefix FuSe to disambiguate them from those we are going to implement. As an example,
Appears in 2 contracts
Samples: Chaperone Contracts for Higher Order Sessions, Chaperone Contracts for Higher Order Sessions
Monitoring Sessions in OCaml. In this section we illustrate the key aspects of an OCaml module that implements λCoS commu- nication primitives. Instead of building the primitives from scratch, we obtain them as wrappers of the corresponding primitives provided by FuSe, an OCaml library of binary sessions Xxxxxxxx [Xxxxxxxx 2017]. This way we do not have to delve into low-level details concerning the encoding of session types or the implementation of the session primitives and instead we can focus on the aspects strictly related to contract monitoring. The fact that we can build λCoS primitives on top of FuSe is a sign that our monitoring technique is modular and should be portable to other session libraries for possibly different programming languages. Even though FuSe has its own OCaml representation of session types, we keep using the metavari- xxxxx metavariables T and S to improve readability. In particular, we write T st for the OCaml type that denotes a lone (i.e., unmonitored) FuSe endpoint with session type T . Similarly, we write T mt for the OCaml type that denotes a possibly monitored endpoint. OCaml’s support for parametric polymorphism in conjunction to FuSe’s representation of session types makes it possible to also represent session type variables standing for unknown session types. Hereafter we use A, B to range over session type variables and A st, A mt for their corresponding representations in FuSe and our λCoS imple- mentationimplementation. The FuSe representation of session types makes it easy to switch from a session type to its dual Xxxxxxxx [Xxxxxxxx 2017]. We will write A st to refer to the dual of A st. Concerning the session communication primitives, we use the prefix FuSe to disambiguate them from those we are going to implement. As an example,
Appears in 1 contract
Monitoring Sessions in OCaml. In this section we illustrate the key aspects of an OCaml module that implements λCoS commu- nication primitives. Instead of building the primitives from scratch, we obtain them as wrappers of the corresponding primitives provided by FuSe, an OCaml library of binary sessions [Xxxxxxxx 2017]. This way we do not have to delve into low-level details concerning the encoding of session types or the implementation of the session primitives and instead we can focus on the aspects strictly related to contract monitoring. The fact that we can build λCoS primitives on top of FuSe is a sign that our monitoring technique is modular and should be portable to other session libraries for possibly different programming languages. Even though FuSe has its own OCaml representation of session types, we keep using the metavari- xxxxx T and S to improve readability. In particular, we write T st for the OCaml type that denotes a lone (i.e., unmonitored) FuSe endpoint with session type T . Similarly, we write T mt for the OCaml type that denotes a possibly monitored endpoint. OCaml’s support for parametric polymorphism in conjunction to FuSe’s representation of session types makes it possible to also represent session type variables standing for unknown session types. Hereafter we use A, B to range over session type variables and A st, A mt for their corresponding representations in FuSe and our λCoS imple- mentation. The FuSe representation of session types makes it easy to switch from a session type to its dual [Xxxxxxxx 2017]. We will write A st to refer to the dual of A st. Concerning the session communication primitives, we use the prefix FuSe to disambiguate them from those we are going to implement. As an example,
Appears in 1 contract