Results 1  10
of
64
Multiparty asynchronous session types
 In Proceedings of the 35th ACM SIGPLANSIGACT Symposium on Principles of Programming Languages, POPL 2008
, 2008
"... Abstract. Communication is becoming one of the central elements in software development. As a potential typed foundation for structured communicationbased programming, session types have been studied over the last decade for a wide range of process calculi and programming languages, focussing on bi ..."
Abstract

Cited by 164 (40 self)
 Add to MetaCart
Abstract. Communication is becoming one of the central elements in software development. As a potential typed foundation for structured communicationbased programming, session types have been studied over the last decade for a wide range of process calculi and programming languages, focussing on binary (twoparty) sessions. This work extends the foregoing theories of binary session types to multiparty, asynchronous sessions, which often arise in practical communicationcentred applications. Presented as a typed calculus for mobile processes, the theory introduces a new notion of types in which interactions involving multiple peers are directly abstracted as a global scenario. Global types retain a friendly type syntax of binary session types while capturing complex causal chains of multiparty asynchronous interactions. A global type plays the role of a shared agreement among communication peers, and is used as a basis of efficient type checking through its projection onto individual peers. The fundamental properties of the session type discipline such as communication safety and progress are
A Generic Type System for the PiCalculus
 Theoretical Computer Science
, 2003
"... We propose a general, powerful framework of type systems for the #calculus, and show that we can obtain as its instances a variety of type systems guaranteeing nontrivial properties like deadlockfreedom and racefreedom. A key idea is to express types and type environments as abstract processe ..."
Abstract

Cited by 110 (9 self)
 Add to MetaCart
(Show Context)
We propose a general, powerful framework of type systems for the #calculus, and show that we can obtain as its instances a variety of type systems guaranteeing nontrivial properties like deadlockfreedom and racefreedom. A key idea is to express types and type environments as abstract processes: We can check various properties of a process by checking the corresponding properties of its type environment. The framework clarifies the essence of recent complex type systems, and it also enables sharing of a large amount of work such as a proof of type preservation, making it easy to develop new type systems.
On Asynchrony in NamePassing Calculi
 In
, 1998
"... The asynchronous picalculus is considered the basis of experimental programming languages (or proposal of programming languages) like Pict, Join, and Blue calculus. However, at a closer inspection, these languages are based on an even simpler calculus, called Local (L), where: (a) only the output c ..."
Abstract

Cited by 100 (15 self)
 Add to MetaCart
(Show Context)
The asynchronous picalculus is considered the basis of experimental programming languages (or proposal of programming languages) like Pict, Join, and Blue calculus. However, at a closer inspection, these languages are based on an even simpler calculus, called Local (L), where: (a) only the output capability of names may be transmitted; (b) there is no matching or similar constructs for testing equality between names. We study the basic operational and algebraic theory of Lpi. We focus on bisimulationbased behavioural equivalences, precisely on barbed congruence. We prove two coinductive characterisations of barbed congruence in Lpi, and some basic algebraic laws. We then show applications of this theory, including: the derivability of delayed input; the correctness of an optimisation of the encoding of callbyname lambdacalculus; the validity of some laws for Join.
Types as Models: Model Checking MessagePassing Programs
 In Principles of Programming Languages (POPL
, 2001
"... Abstraction and composition are the fundamental issues in making model checking viable for software. This paper proposes new techniques for automating abstraction and decomposition using source level type information provided by the programmer. Our system includes two novel components to achieve thi ..."
Abstract

Cited by 91 (3 self)
 Add to MetaCart
(Show Context)
Abstraction and composition are the fundamental issues in making model checking viable for software. This paper proposes new techniques for automating abstraction and decomposition using source level type information provided by the programmer. Our system includes two novel components to achieve this end: (1) a new behavioral typeandeffect system for the picalculus, which extracts sound models as types, and (2) a new assumeguarantee proof rule for carrying out compositional model checking on the types. Open simulation between CCS processes is used as both the subtyping relation in the type system and the abstraction relation for compositional model checking. We have implemented these ideas in a tool  Piper. Piper exploits type signatures provided by the programmer to partition the model checking problem, and emit model checking obligations that are discharged using the Spin model checker. We present the details on applying Piper on two examples: (1) the SIS standard for managing trouble tickets across multiple organizations and (2) a file reader from the pipelined implementation of a web server.
What is a `Good' Encoding of Guarded Choice?
 INFORMATION AND COMPUTATION
, 1997
"... The calculus with synchronous output and mixedguarded choices is strictly more expressive than the calculus with asynchronous output and no choice. As a corollary, Palamidessi recently proved that there is no fully compositional encoding from the former into the latter that preserves divergenc ..."
Abstract

Cited by 75 (4 self)
 Add to MetaCart
The calculus with synchronous output and mixedguarded choices is strictly more expressive than the calculus with asynchronous output and no choice. As a corollary, Palamidessi recently proved that there is no fully compositional encoding from the former into the latter that preserves divergencefreedom and symmetries. This paper shows
The Name Discipline of Uniform Receptiveness
 Theoretical Computer Science
, 1997
"... In a process calculus, we say that a name x is uniformly receptive for a process P if: (1) at any time P is ready to accept an input at x, at least as long as there are processes that could send messages at x; (2) the input offer at x is functional, that is, all messages received by P at x are appli ..."
Abstract

Cited by 66 (5 self)
 Add to MetaCart
(Show Context)
In a process calculus, we say that a name x is uniformly receptive for a process P if: (1) at any time P is ready to accept an input at x, at least as long as there are processes that could send messages at x; (2) the input offer at x is functional, that is, all messages received by P at x are applied to the same continuation. In the calculus this discipline is employed, for instance, when modeling functions, objects, higherorder communications, remoteprocedure calls. We formulate the discipline of uniform receptiveness by means of a type system, and then we study its impact on behavioural equivalences and process reasoning. We develop some theory and proof techniques for uniform receptiveness, and illustrate their usefulness on some nontrivial examples.
A new type system for deadlockfree processes
 In CONCUR’06, volume 4137 of LNCS
, 2006
"... Abstract. We extend a previous type system for the πcalculus that guarantees deadlockfreedom. The previous type systems for deadlockfreedom either lacked a reasonable type inference algorithm or were not strong enough to ensure deadlockfreedom of processes using recursion. Although the extension ..."
Abstract

Cited by 60 (4 self)
 Add to MetaCart
(Show Context)
Abstract. We extend a previous type system for the πcalculus that guarantees deadlockfreedom. The previous type systems for deadlockfreedom either lacked a reasonable type inference algorithm or were not strong enough to ensure deadlockfreedom of processes using recursion. Although the extension is fairly simple, the new type system admits type inference and is much more expressive than the previous type systems that admit type inference. In fact, we show that the simplytyped λcalculus with recursion can be encoded into the deadlockfree fragment of our typed πcalculus. To enable analysis of realistic programs, we also present an extension of the type system to handle recursive data structures like lists. Both extensions have already been incorporated into the recent release of TyPiCal, a typebased analyzer for the πcalculus. 1
A Type System for LockFree Processes
, 2002
"... Interpretation. An alternative way to analyze the behavior of a concurrent program would be to use abstract interpretation [4, 5]. Actually, from a very general viewpoint, our typebased analysis of locks can be seen as a kind of abstract interpretation. We can read a type judgment # P as "# ..."
Abstract

Cited by 55 (8 self)
 Add to MetaCart
Interpretation. An alternative way to analyze the behavior of a concurrent program would be to use abstract interpretation [4, 5]. Actually, from a very general viewpoint, our typebased analysis of locks can be seen as a kind of abstract interpretation. We can read a type judgment # P as "# is an abstraction of a concrete process P ." (The relation "#" corresponds to a pair of abstraction /concretization functions.) Indeed, we can regard a type environment as an abstract process: we have defined reductions of type environments in Section 3.7.
Type Systems for Concurrent Programs
"... Type systems for programming languages help reasoning about program behavior and early finding of bugs. Recent applications of type systems include analysis of various program behaviors such as side effects, resource usage, security properties, and concurrency. This paper is a tutorial of one of suc ..."
Abstract

Cited by 41 (3 self)
 Add to MetaCart
(Show Context)
Type systems for programming languages help reasoning about program behavior and early finding of bugs. Recent applications of type systems include analysis of various program behaviors such as side effects, resource usage, security properties, and concurrency. This paper is a tutorial of one of such applications: type systems for analyzing behavior of concurrent processes. We start with a simple type system and extend it step by step to obtain more expressive type systems to reason about deadlockfreedom, safe usage of locks, etc.
Towards a unified approach to encodability and separation results for process calculi
 Proc. of 19th International Conference on Concurrency Theory (CONCUR’08), number 5201 in LNCS
, 2008
"... Abstract. In this paper, we present a unified approach to evaluating the relative expressive power of process calculi. In particular, we identify a small set of criteria (that have already been somehow presented in the literature) that an encoding should satisfy to be considered a good means for lan ..."
Abstract

Cited by 35 (6 self)
 Add to MetaCart
Abstract. In this paper, we present a unified approach to evaluating the relative expressive power of process calculi. In particular, we identify a small set of criteria (that have already been somehow presented in the literature) that an encoding should satisfy to be considered a good means for language comparison. We argue that the combination of such criteria is a valid proposal by noting that: (i) the best known encodings appeared in the literature satisfy them; (ii) this notion is not trivial, because there exist encodings that do not satisfy all the criteria we have proposed; (iii) the best known separation results can be formulated in terms of our criteria; and (iv) some widely believed (but never formally proved) separation results can be proved by using the criteria we propose. Moreover, the way in which we prove known separation results is easier and more uniform than the way in which such results were originally proved. 1