Results 1 - 10
of
37
Higher-Order Processes, Functions, and Sessions: A Monadic Integration
"... Abstract. In prior research we have developed a Curry-Howard interpretation of linear sequent calculus as session-typed processes. In this paper we uniformly integrate this computational interpretation in a functional language via a linear contextual monad that isolates session-based concurrency. Mo ..."
Abstract
-
Cited by 13 (6 self)
- Add to MetaCart
(Show Context)
Abstract. In prior research we have developed a Curry-Howard interpretation of linear sequent calculus as session-typed processes. In this paper we uniformly integrate this computational interpretation in a functional language via a linear contextual monad that isolates session-based concurrency. Monadic values are open process expressions and are first class objects in the language, thus providing a logical foundation for higher-order session typed processes. We illustrate how the combined use of the monad and recursive types allows us to cleanly write a rich variety of concurrent programs, including higher-order programs that communicate processes. We show the standard metatheoretic result of type preservation, as well as a global progress theorem, which to the best of our knowledge, is new in the higher-order session typed setting. 1
Behavioral Polymorphism and Parametricity in Session-Based Communication
"... Abstract. We investigate a notion of behavioral genericity in the context of session type disciplines. To this end, we develop a logically motivated theory of parametric polymorphism, reminiscent of the Girard-Reynolds polymorphic λ-calculus, but casted in the setting of concurrent processes. In our ..."
Abstract
-
Cited by 12 (8 self)
- Add to MetaCart
(Show Context)
Abstract. We investigate a notion of behavioral genericity in the context of session type disciplines. To this end, we develop a logically motivated theory of parametric polymorphism, reminiscent of the Girard-Reynolds polymorphic λ-calculus, but casted in the setting of concurrent processes. In our theory, polymorphism accounts for the exchange of abstract communication protocols and dynamic instantiation of heterogeneous interfaces, as opposed to the exchange of data types and dynamic instantiation of individual message types. Our polymorphic session-typed process language satisfies strong forms of type preservation and global progress, is strongly normalizing, and enjoys a relational parametricity principle. Combined, our results confer strong correctness guarantees for communicating systems. In particular, parametricity is key to derive non-trivial results about internal protocol independence, a concurrent analogous of representation independence, and non-interference properties of modular, distributed systems. 1
Relational Parametricity for Polymorphic Session Types
"... We introduce a theory of polymorphic concurrent processes, which arises from an interpretation of second-order intuitionistic linear logic propositions as polymorphic session types, in the style of the Girard-Reynolds polymorphic λ-calculus. The interpretation naturally generalizes recent discover ..."
Abstract
-
Cited by 4 (3 self)
- Add to MetaCart
(Show Context)
We introduce a theory of polymorphic concurrent processes, which arises from an interpretation of second-order intuitionistic linear logic propositions as polymorphic session types, in the style of the Girard-Reynolds polymorphic λ-calculus. The interpretation naturally generalizes recent discoveries on the correspondence between linear logic propositions and session types. In our proposed theory, polymorphism accounts for the exchange of abstract communication protocols, and dynamic instantiation of heterogeneous interfaces. Well-typed processes enjoy a strong form of subject reduction (type preservation) and global progress, but also termination (strong normalization) and relational parametricity (representation independence). The latter two properties are obtained by adapting proof techniques in the functional setting to linear session types.
Progress as Compositional Lock-Freedom
"... Abstract. A session-based process satisfies the progress property if its sessions never get stuck when it is executed in an adequate context. Pre-vious work studied how to define progress by introducing the notion of catalysers, execution contexts generated from the type of a process. In this paper, ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
(Show Context)
Abstract. A session-based process satisfies the progress property if its sessions never get stuck when it is executed in an adequate context. Pre-vious work studied how to define progress by introducing the notion of catalysers, execution contexts generated from the type of a process. In this paper, we refine such definition to capture a more intuitive notion of context adequacy for checking progress. Interestingly, our new catal-ysers lead to a novel characterisation of progress in terms of the stan-dard notion of lock-freedom. Guided by this discovery, we also develop a conservative extension of catalysers that does not depend on types, gen-eralising the notion of progress to untyped session-based processes. We combine our results with existing techniques for lock-freedom, obtaining a new methodology for proving progress. Our methodology captures new processes wrt previous progress analysis based on session types. 1
An Extensible Approach to Session Polymorphism
, 2012
"... Session types describe and constrain the input/output behavior of systems. Existing session typing systems have limited support for polymorphism. For example, existing systems cannot provide the most general type for a generic proxy process that forwards messages between two channels. We provide a ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
(Show Context)
Session types describe and constrain the input/output behavior of systems. Existing session typing systems have limited support for polymorphism. For example, existing systems cannot provide the most general type for a generic proxy process that forwards messages between two channels. We provide a polymorphic session typing system for the π calculus, and demonstrate the utility of session-type-level functions in combination with polymorphic session typing. The type system guarantees subject reduction and safety properties, but not deadlock freedom. We describe a formalization of the type system in Coq. The proofs of subject reduction and safety properties, as well as typing of example processes, have been mechanically verified.
Sessions as propositions
- In PLACES
, 2014
"... Recently, Wadler presented a continuation-passing translation from a session-typed functional language, GV, to a process calculus based on classical linear logic, CP. However, this translation is one-way: CP is more expressive than GV. We propose an extension of GV, called HGV, and give translations ..."
Abstract
-
Cited by 3 (3 self)
- Add to MetaCart
(Show Context)
Recently, Wadler presented a continuation-passing translation from a session-typed functional language, GV, to a process calculus based on classical linear logic, CP. However, this translation is one-way: CP is more expressive than GV. We propose an extension of GV, called HGV, and give translations showing that it is as expressive as CP. The new translations shed light both on the original translation from GV to CP, and on the limitations in expressiveness of GV. 1
Foundations of session types and behavioural contracts
"... Behavioural type systems, usually associated to concurrent or distributed computations, encompass concepts such as interfaces, communication protocols, and contracts, in addition to the traditional input/output operations. The behavioural type of a software component specifies its expected patterns ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Behavioural type systems, usually associated to concurrent or distributed computations, encompass concepts such as interfaces, communication protocols, and contracts, in addition to the traditional input/output operations. The behavioural type of a software component specifies its expected patterns of interaction using expressive type languages, so types can be used to determine automatically whether the component interacts correctly with other components. Two related important notions of behavioural types are those of session types and behavioural contracts. This article surveys the main accomplishments of the last 20 years within these two approaches.
Multiparty sessions based on proof nets
- In Programming Language Approaches to Concurrency and Communication-cEntric Software (PLACES
, 2014
"... tum as a very useful foundation for the description and verification of structured interactions. Interestingly, recent works have established a close correspondence between typed, synchronous pi-calculus processes and sequent proofs of a variation of Intuitionistic Linear Logic [3]. This ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
(Show Context)
tum as a very useful foundation for the description and verification of structured interactions. Interestingly, recent works have established a close correspondence between typed, synchronous pi-calculus processes and sequent proofs of a variation of Intuitionistic Linear Logic [3]. This
On duality relations for session types
, 2014
"... Abstract. Session types are a type formalism used to describe communication protocols over private session channels. Each participant in a binary session owns one endpoint of a session channel. A key notion is that of duality: the endpoints of a session channel should have dual session types in orde ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
(Show Context)
Abstract. Session types are a type formalism used to describe communication protocols over private session channels. Each participant in a binary session owns one endpoint of a session channel. A key notion is that of duality: the endpoints of a session channel should have dual session types in order to guarantee communi-cation safety. Duality relations have been independently defined in different ways and different works, without considering their effect on the type system. In this paper we systematically study the existing duality relations and some new ones, and compare them in order to understand their expressiveness. The outcome is that those relations are split into two groups, one related to the naı̈ve inductive duality, and the other related to a notion of mutual compliance, which we borrow from the literature on contracts for web-services. 1