Effects as sessions, sessions as effects

D Orchard, N Yoshida - ACM SIGPLAN Notices, 2016 - dl.acm.org
ACM SIGPLAN Notices, 2016dl.acm.org
Effect and session type systems are two expressive behavioural type systems. The former is
usually developed in the context of the lambda-calculus and its variants, the latter for the pi-
calculus. In this paper we explore their relative expressive power. Firstly, we give an
embedding from PCF, augmented with a parameterised effect system, into a session-typed
pi-calculus (session calculus), showing that session types are powerful enough to express
effects. Secondly, we give a reverse embedding, from the session calculus back into PCF, by …
Effect and session type systems are two expressive behavioural type systems. The former is usually developed in the context of the lambda-calculus and its variants, the latter for the pi-calculus. In this paper we explore their relative expressive power. Firstly, we give an embedding from PCF, augmented with a parameterised effect system, into a session-typed pi-calculus (session calculus), showing that session types are powerful enough to express effects. Secondly, we give a reverse embedding, from the session calculus back into PCF, by instantiating PCF with concurrency primitives and its effect system with a session-like effect algebra; effect systems are powerful enough to express sessions. The embedding of session types into an effect system is leveraged to give a new implementation of session types in Haskell, via an effect system encoding. The correctness of this implementation follows from the second embedding result. We also discuss various extensions to our embeddings.
ACM Digital Library
以上显示的是最相近的搜索结果。 查看全部搜索结果