Results 1  10
of
182
Language primitives and type discipline for structured communicationbased programming
 In ESOP’98, volume 1381 of LNCS
, 1998
"... Session primitives and types provide a flexible programming style for structured interaction, and are used to statically check the safe and consistent composition of protocols in communicationcentric distributed software. Unfortunately authors working on session types have recently realised that so ..."
Abstract

Cited by 202 (48 self)
 Add to MetaCart
Session primitives and types provide a flexible programming style for structured interaction, and are used to statically check the safe and consistent composition of protocols in communicationcentric distributed software. Unfortunately authors working on session types have recently realised that some of the previously published systems fail to satisfy the basic theorems of Subject Reduction and Type Safety. This report discusses the issues involved in higherorder session communication, presents a formulation of the recursive types as well as proofs of the Subject Reduction and Type Safety Theorems of the original session typing system by HondaVasconcelosKubo in ESOP’98. It also proposes a variant which allows a more liberal higherorder session communication, based on an idea of Gay and Hole.
Modern Concurrency Abstractions for C#
 ACM TRANS. PROGRAM. LANG. SYST
, 2002
"... Polyphonic C# is an extension of the C# language with new asynchronous concurrency constructs, based on the join calculus. We describe the design and implementation of the language and give examples of its use in addressing a range of concurrent programming problems. ..."
Abstract

Cited by 127 (2 self)
 Add to MetaCart
Polyphonic C# is an extension of the C# language with new asynchronous concurrency constructs, based on the join calculus. We describe the design and implementation of the language and give examples of its use in addressing a range of concurrent programming problems.
Nomadic Pict: Language and Infrastructure Design for Mobile Agents
 IEEE Concurrency
, 1999
"... We study the distributed infrastructures required for locationindependent communication between migrating agents. These infrastructures are problematic: different applications may have very different patterns of migration and communication, and require different performance and robustness propertie ..."
Abstract

Cited by 104 (15 self)
 Add to MetaCart
We study the distributed infrastructures required for locationindependent communication between migrating agents. These infrastructures are problematic: different applications may have very different patterns of migration and communication, and require different performance and robustness properties; algorithms must be designed with these in mind. To study this problem we introduce an agent programming language  Nomadic Pict. It is designed to allow infrastructure algorithms to be expressed as clearly as possible, as translations from a highlevel language to a low level. The levels are based on rigorouslydefined process calculi, they provide sharp levels of abstraction. In this paper we describe the language and use it to develop an infrastructure for an example application. The language and examples have been implemented; we conclude with a description of the compiler and runtime.
The reflexive CHAM and the joincalculus
 IN PROCEEDINGS OF THE 23RD ACM SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES
"... By adding reflexion to the chemical machine of Berry and Boudol, we obtain a formal model of concurrency that is consistent with mobility and distribution. Our model provides the foundations of a programming language with functional and objectoriented features. It can also be seen as a process calc ..."
Abstract

Cited by 100 (0 self)
 Add to MetaCart
By adding reflexion to the chemical machine of Berry and Boudol, we obtain a formal model of concurrency that is consistent with mobility and distribution. Our model provides the foundations of a programming language with functional and objectoriented features. It can also be seen as a process calculus, the joincalculus, which we prove equivalent to the picalculus of Milner, Parrow and Walker.
Decoding Choice Encodings
, 1999
"... We study two encodings of the asynchronous #calculus with inputguarded choice into its choicefree fragment. One encoding is divergencefree, but refines the atomic commitment of choice into gradual commitment. The other preserves atomicity, but introduces divergence. The divergent encoding is ..."
Abstract

Cited by 96 (5 self)
 Add to MetaCart
We study two encodings of the asynchronous #calculus with inputguarded choice into its choicefree fragment. One encoding is divergencefree, but refines the atomic commitment of choice into gradual commitment. The other preserves atomicity, but introduces divergence. The divergent encoding is fully abstract with respect to weak bisimulation, but the more natural divergencefree encoding is not. Instead, we show that it is fully abstract with respect to coupled simulation, a slightly coarserbut still coinductively definedequivalence that does not enforce bisimilarity of internal branching decisions. The correctness proofs for the two choice encodings introduce a novel proof technique exploiting the properties of explicit decodings from translations to source terms.
The Polymorphic Picalculus: Theory and Implementation
, 1995
"... We investigate whether the πcalculus is able to serve as a good foundation for the design and implementation of a stronglytyped concurrent programming language. The first half of the dissertation examines whether the πcalculus supports a simple type system which is flexible enough to provide a su ..."
Abstract

Cited by 95 (0 self)
 Add to MetaCart
We investigate whether the πcalculus is able to serve as a good foundation for the design and implementation of a stronglytyped concurrent programming language. The first half of the dissertation examines whether the πcalculus supports a simple type system which is flexible enough to provide a suitable foundation for the type system of a concurrent programming language. The second half of the dissertation considers how to implement the πcalculus efficiently, starting with an abstract machine for πcalculus and finally presenting a compilation of πcalculus to C. We start the dissertation by presenting a simple, structural type system for πcalculus, and then, after proving the soundness of our type system, show how to infer principal types for πterms. This simple type system can be extended to include useful typetheoretic constructions such as recursive types and higherorder polymorphism. Higherorder polymorphism is important, since it gives us the ability to implement abstract datatypes in a typesafe manner, thereby providing a greater degree of modularity for πcalculus programs. The functional computational paradigm plays an important part in many programming languages. It is wellknown that the πcalculus can encode functional computation. We go further and show that the type structure of λterms is preserved by such encodings, in the sense that we can relate the type of a λterm to the type of its encoding in the πcalculus. This means that a πcalculus programming language can genuinely support typed functional programming as a special case. An efficient implementation of πcalculus is necessary if we wish to consider πcalculus as an operational foundation for concurrent programming. We first give a simple abstract machine for πcalculus and prove it correct. We then show how this abstract machine inspires a simple, but efficient, compilation of πcalculus to C (which now forms the basis of the Pict programming language implementation).
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 86 (13 self)
 Add to MetaCart
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.
Structured CommunicationCentred Programming for Web Services
, 2007
"... Abstract. This paper relates two different paradigms of descriptions of communication behaviour, one focussing on global message flows and another on endpoint behaviours, using formal calculi based on session types. The global calculus, which originates from a web service description language (W3C ..."
Abstract

Cited by 84 (19 self)
 Add to MetaCart
Abstract. This paper relates two different paradigms of descriptions of communication behaviour, one focussing on global message flows and another on endpoint behaviours, using formal calculi based on session types. The global calculus, which originates from a web service description language (W3C WSCDL), describes an interaction scenario from a vantage viewpoint; the endpoint calculus, an applied typed πcalculus, precisely identifies a local behaviour of each participant. We explore a theory of endpoint projection, by which we can map a global description to its endpoint counterpart preserving types and dynamics. Three principles of wellstructured description and the type structures play a fundamental role in the theory. 1
Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control
, 2006
"... Permission is hereby granted to make and distribute verbatim copies of this document without royalty or fee. Permission is granted to quote excerpts from this documented provided the original source is properly cited. ii When separately written programs are composed so that they may cooperate, they ..."
Abstract

Cited by 81 (9 self)
 Add to MetaCart
Permission is hereby granted to make and distribute verbatim copies of this document without royalty or fee. Permission is granted to quote excerpts from this documented provided the original source is properly cited. ii When separately written programs are composed so that they may cooperate, they may instead destructively interfere in unanticipated ways. These hazards limit the scale and functionality of the software systems we can successfully compose. This dissertation presents a framework for enabling those interactions between components needed for the cooperation we intend, while minimizing the hazards of destructive interference. Great progress on the composition problem has been made within the object paradigm, chiefly in the context of sequential, singlemachine programming among benign components. We show how to extend this success to support robust composition of concurrent and potentially malicious components distributed over potentially malicious machines. We present E, a distributed, persistent, secure programming language, and CapDesk, a virussafe desktop built in E, as embodiments of the techniques we explain.