Session types are a well-established approach to ensuring protocol conformance and the absence of communication errors such as deadlocks in message passing systems. Haskell introduced implicit parameters, Scala popularised this feature and recently gave implicit types first-class status, yielding an expressive tool for handling context dependencies in a type-safe yet terse way. We ask: can type-safe implicit functions be generalised from Scala’s sequential setting to message passing computation? We answer this question in the affirmative by presenting the first concurrent functional language with implicit message passing. The key idea is to generalise the concept of an implicit function to an implicit message, its concurrent analogue. Our l...
Message-passing software systems exhibit non-trivial forms of concurrency and distribution; they are...
We develop a generalization of existing Curry-Howard interpretations of (binary) session types by re...
Designing, developing and maintaining concurrent applications is an error-prone and time-consuming t...
Session types are a well-established approach to ensuring protocol conformance and the absence of co...
Session types are a well-established approach to ensuring protocol conformance and the absence of co...
Implicit parameters are used pervasively in Scala and are also present in a number of other programm...
Concurrent and distributed programming is notoriously hard. Modern languages and toolkits ease this ...
Session Types allow plans of conversation between two concurrent processes to be treated as types. T...
Programming distributed systems is difficult. Multiparty session typing (MPST) is a method to automa...
Type classes were originally developed in Haskell as a disciplined alternative to ad-hoc polymorphis...
Programming distributed systems is difficult. Multiparty session typing (MPST) is a method to automa...
The age of writing single-threaded applications is over. To develop scalable applications, developer...
Multiparty Session Types (MPST) is a typing discipline for message-passing distributed processes tha...
Session types are a well-established approach to communication correctness in message-passing proces...
We define a language whose type system, incorporating session types, allows complex protocols to be ...
Message-passing software systems exhibit non-trivial forms of concurrency and distribution; they are...
We develop a generalization of existing Curry-Howard interpretations of (binary) session types by re...
Designing, developing and maintaining concurrent applications is an error-prone and time-consuming t...
Session types are a well-established approach to ensuring protocol conformance and the absence of co...
Session types are a well-established approach to ensuring protocol conformance and the absence of co...
Implicit parameters are used pervasively in Scala and are also present in a number of other programm...
Concurrent and distributed programming is notoriously hard. Modern languages and toolkits ease this ...
Session Types allow plans of conversation between two concurrent processes to be treated as types. T...
Programming distributed systems is difficult. Multiparty session typing (MPST) is a method to automa...
Type classes were originally developed in Haskell as a disciplined alternative to ad-hoc polymorphis...
Programming distributed systems is difficult. Multiparty session typing (MPST) is a method to automa...
The age of writing single-threaded applications is over. To develop scalable applications, developer...
Multiparty Session Types (MPST) is a typing discipline for message-passing distributed processes tha...
Session types are a well-established approach to communication correctness in message-passing proces...
We define a language whose type system, incorporating session types, allows complex protocols to be ...
Message-passing software systems exhibit non-trivial forms of concurrency and distribution; they are...
We develop a generalization of existing Curry-Howard interpretations of (binary) session types by re...
Designing, developing and maintaining concurrent applications is an error-prone and time-consuming t...