Results 1  10
of
17
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 40 (3 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
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 26 (2 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.
A type system for client progress in a serviceoriented calculus
 In Proc. of Concurrency, Graphs and Models: Essays Dedicated to Ugo Montanari on the Occasion of His 65th Birthday, volume 5065 of LNCS
, 2008
"... Abstract. We introduce a type system providing a guarantee of client progress for a fragment of CaSPiS, a recently proposed process calculus for serviceoriented applications. The interplay of sessioning and dataorchestration primitives makes the design of a type system for CaSPiS challenging. Our m ..."
Abstract

Cited by 19 (3 self)
 Add to MetaCart
(Show Context)
Abstract. We introduce a type system providing a guarantee of client progress for a fragment of CaSPiS, a recently proposed process calculus for serviceoriented applications. The interplay of sessioning and dataorchestration primitives makes the design of a type system for CaSPiS challenging. Our main result states that in a welltyped CaSPiS system, and in absence of divergence, any client invoking a service is guaranteed not to get stuck during the execution of a conversation protocol because of inadequate service communication capabilities.
On Stratified Regions
 In Proc. of APLAS, volume 5904 of LNCS
, 2009
"... Type and effect systems are a tool to analyse statically the behaviour of programs with effects. We present a proof based on the so called reducibility candidates that a suitable stratification of the type and effect system entails the termination of the typable programs. The proof technique covers ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
(Show Context)
Type and effect systems are a tool to analyse statically the behaviour of programs with effects. We present a proof based on the so called reducibility candidates that a suitable stratification of the type and effect system entails the termination of the typable programs. The proof technique covers a simply typed, multithreaded, callbyvalue lambdacalculus, equipped with a variety of scheduling (preemptive, cooperative) and interaction mechanisms (references, channels, signals).
M.: Responsiveness in process calculi
, 2008
"... A system guarantees responsive usage of a channel r if a communication along r is guaranteed to eventually take place. Responsiveness is important, for instance, to ensure that any request to a service be eventually replied. We propose two distinct type systems, each of which statically guarantees r ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
(Show Context)
A system guarantees responsive usage of a channel r if a communication along r is guaranteed to eventually take place. Responsiveness is important, for instance, to ensure that any request to a service be eventually replied. We propose two distinct type systems, each of which statically guarantees responsive usage of names in welltyped picalculus processes. In the first system, we achieve responsiveness by combining techniques for deadlock and livelock avoidance with linearity and receptiveness. The latter is a guarantee that a name is ready to receive as soon as it is created. These conditions imply relevant limitations on the nesting of actions and on multiple use of names in processes. In the second system, we relax these requirements so as to permit certain forms of nested inputs and multiple outputs. We demonstrate the expressive power of the two systems by showing that primitive recursive functions – in the case of the first system – and Cook and Misra’s service orchestration language ORC – in the case of the second system – can be encoded into welltyped processes.
A hybrid type system for lockfreedom of mobile processes
, 2008
"... We propose a type system for lockfreedom in the πcalculus, which guarantees that certain communications will eventually succeed. Distinguishing features of our type system are: it can verify lockfreedom of concurrent programs that have sophisticated recursive communication structures; it can be ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
(Show Context)
We propose a type system for lockfreedom in the πcalculus, which guarantees that certain communications will eventually succeed. Distinguishing features of our type system are: it can verify lockfreedom of concurrent programs that have sophisticated recursive communication structures; it can be fully automated; it is hybrid, in that it combines a type system for lockfreedom with local reasoning about deadlockfreedom, termination, and confluence analyses. Moreover, the type system is parameterized by deadlockfreedom/termination/confluence analyses, so that any methods (e.g. type systems and model checking) can be used for those analyses. A lockfreedom analysis tool has been implemented based on the proposed type system, and tested for nontrivial programs.
A fault tolerance bisimulation proof for consensus
 16th European Symposium on Programming (ESOP’07), volume 4421 of LNCS
, 2007
"... Abstract. The possibility of partial failure occuring at any stage of computation complicates rigorous formal treatment of distributed algorithms. We propose a methodology for formalising and proving the correctness of distributed algorithms which alleviates this complexity. The methodology uses fau ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
Abstract. The possibility of partial failure occuring at any stage of computation complicates rigorous formal treatment of distributed algorithms. We propose a methodology for formalising and proving the correctness of distributed algorithms which alleviates this complexity. The methodology uses faulttolerance bisimulation proof techniques to split the analysis into two phases, that is a failurefree phase and a failure phase, permitting separation of concerns. We design a minimal partialfailure calculus, develop a corresponding bisimulation theory for it and express a consensus algorithm in the calculus. We then use the consensus example and the calculus theory to demonstrate the benefits of our methodology. 1
Decision Procedures for Automating Termination Proofs
"... Abstract. Automated termination provers often use the following schema to prove that a program terminates: construct a relational abstraction of the program’s transition relation and then show that the relational abstraction is wellfounded. The focus of current tools has been on developing sophistic ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. Automated termination provers often use the following schema to prove that a program terminates: construct a relational abstraction of the program’s transition relation and then show that the relational abstraction is wellfounded. The focus of current tools has been on developing sophisticated techniques for constructing the abstractions while relying on known decidable logics (such as linear arithmetic) to express them. We believe we can significantly increase the class of programs that are amenable to automated termination proofs by identifying more expressive decidable logics for reasoning about wellfounded relations. We therefore present a new decision procedure for reasoning about multiset orderings, which are among the most powerful orderings used to prove termination. We show that, using our decision procedure, one can automatically prove termination of natural abstractions of programs. 1
Functions as processes: termination and the ¯λµ˜µcalculus ⋆
"... Abstract. The ¯λµ˜µcalculus is a variant of the λcalculus with significant differences, including nonconfluence and a CurryHoward isomorphism with the classical sequent calculus. We present an encoding of the ¯λµ˜µcalculus into the πcalculus. We establish the machine for the ¯λµ˜µcalculus. We ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. The ¯λµ˜µcalculus is a variant of the λcalculus with significant differences, including nonconfluence and a CurryHoward isomorphism with the classical sequent calculus. We present an encoding of the ¯λµ˜µcalculus into the πcalculus. We establish the machine for the ¯λµ˜µcalculus. We prove that there is a tight relationship between such a machine and Curien and Herbelin’s abstract machine for the ¯λµ˜µcalculus. The πcalculus image of the (typed) ¯λµ˜µcalculus is a nontrivial set of terminating processes. 1