Results 1  10
of
81
Pict: A programming language based on the picalculus
 PROOF, LANGUAGE AND INTERACTION: ESSAYS IN HONOUR OF ROBIN MILNER
, 1997
"... The πcalculus offers an attractive basis for concurrent programming. It is small, elegant, and well studied, and supports (via simple encodings) a wide range of highlevel constructs including data structures, higherorder functional programming, concurrent control structures, and objects. Moreover ..."
Abstract

Cited by 254 (8 self)
 Add to MetaCart
The πcalculus offers an attractive basis for concurrent programming. It is small, elegant, and well studied, and supports (via simple encodings) a wide range of highlevel constructs including data structures, higherorder functional programming, concurrent control structures, and objects. Moreover, familiar type systems for the calculus have direct counterparts in the πcalculus, yielding strong, static typing for a highlevel language using the πcalculus as its core. This paper describes Pict, a stronglytyped concurrent programming language constructed in terms of an explicitlytypedcalculus core language.
On reductionbased process semantics
 Theoretical Computer Science
, 1995
"... Abstract. A formulation of semantic theories for processes which is based on reduction relation and equational reasoning is studied. The new construction can induce meaningful theories for processes, both in strong and weak settings. The resulting theories in many cases coincide with, and sometimes ..."
Abstract

Cited by 144 (21 self)
 Add to MetaCart
Abstract. A formulation of semantic theories for processes which is based on reduction relation and equational reasoning is studied. The new construction can induce meaningful theories for processes, both in strong and weak settings. The resulting theories in many cases coincide with, and sometimes generalise, observationbased formulation of behavioural equivalence. The basic construction of reductionbased theories is studied, taking a simple name passing calculus called \nucalculus as an example. Results on other calculi are also briefly discussed.
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 97 (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.
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 91 (8 self)
 Add to MetaCart
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.
A Concurrent Object Calculus: Reduction and Typing
 HLCL'98 TO APPEAR
, 1998
"... We obtain a new formalism for concurrent objectoriented languages by extending Abadi and Cardelli's imperative object calculus with operators for concurrency from thecalculus and with operators for synchronisation based on mutexes. Our syntax of terms is extremely expressive; in a precise sense it ..."
Abstract

Cited by 81 (4 self)
 Add to MetaCart
We obtain a new formalism for concurrent objectoriented languages by extending Abadi and Cardelli's imperative object calculus with operators for concurrency from thecalculus and with operators for synchronisation based on mutexes. Our syntax of terms is extremely expressive; in a precise sense it unifies notions of expression, process, store, thread, and configuration. We present a chemicalstyle reduction semantics, and prove it equivalent to a structural operational semantics. We identify a deterministic fragment that is closed under reduction and show that it includes the imperative object calculus. A collection of type systems for objectoriented constructs is at the heart of Abadi and Cardelli's work. We recast one of Abadi and Cardelli's firstorder type systems with object types and subtyping in the setting of our calculus and prove subject reduction. Since our syntax of terms includes both stores and running expressions, we avoid the need to separate store typing from typing of expressions. We translate asynchronous communication channels and the choicefree asynchronouscalculus into our calculus to illustrate its expressiveness; the types of readonly and writeonly channels are supertypes of readwrite channels.
πCalculus, Internal Mobility, and AgentPassing Calculi
 THEORETICAL COMPUTER SCIENCE
, 1995
"... The πcalculus is a process algebra which originates from CCS and permits a natural modelling of mobility (i.e., dynamic reconfigurations of the process linkage) using communication of names. Previous research has shown that the πcalculus has much greater expressiveness than CCS, but also a much mo ..."
Abstract

Cited by 80 (11 self)
 Add to MetaCart
The πcalculus is a process algebra which originates from CCS and permits a natural modelling of mobility (i.e., dynamic reconfigurations of the process linkage) using communication of names. Previous research has shown that the πcalculus has much greater expressiveness than CCS, but also a much more complex mathematical theory. The primary goal of this work is to understand the reasons of this gap. Another goal is to compare the expressiveness of namepassing calculi, i.e., calculi like πcalculus where mobility is achieved via exchange of names, and that of agentpassing calculi, i.e., calculi where mobility is achieved via exchange of agents. We separate the mobility mechanisms of the πcalculus into two, respectively called internal mobility and external mobility. The study of the subcalculus which only uses internal mobility, called I, suggests that internal mobility is responsible for much of the expressiveness of the πcalculus, whereas external mobility is responsible for many of...
A Calculus for Concurrent Objects
 Proceedings of the 7th International Conference on Concurrency Theory (CONCUR '96), LNCS 1119
, 1996
"... . This paper presents an imperative and concurrent extension of the functional objectoriented calculus described in [FHM94]. It belongs to the family of socalled prototypebased objectoriented languages, in which objects are created from existing ones via the inheritance primitives of object exte ..."
Abstract

Cited by 42 (2 self)
 Add to MetaCart
. This paper presents an imperative and concurrent extension of the functional objectoriented calculus described in [FHM94]. It belongs to the family of socalled prototypebased objectoriented languages, in which objects are created from existing ones via the inheritance primitives of object extension and method override. Concurrency is introduced through the identification of objects and processes. To our knowledge, the resulting calculus is the first concurrent object calculus to be studied. We define an operational semantics for the calculus via a transition relation between configurations, which represent snapshots of the runtime system. Our static analysis includes a type inference system, which statically detects messagenotunderstood errors, and an effect system, which guarantees that synchronization code, specified via guards, is sideeffect free. We present a subject reduction theorem, modified to account for imperative and concurrent features, and type and effect soundne...
Imperative Objects and Mobile Processes
 MATH. STRUCT. COMPUT. SCI
, 1998
"... An interpretation of Abadi and Cardelli's firstorder Imperative Object Calculus into a typed picalculus is presented. The interpretation validates the subtyping relation and the typing judgements of the Object Calculus, and is computationally adequate. The proof of computational adequacy makes use ..."
Abstract

Cited by 41 (13 self)
 Add to MetaCart
An interpretation of Abadi and Cardelli's firstorder Imperative Object Calculus into a typed picalculus is presented. The interpretation validates the subtyping relation and the typing judgements of the Object Calculus, and is computationally adequate. The proof of computational adequacy makes use of (a picalculus version) of ready simulation, and of a factorisation of the interpretation into a functional part and a very simple imperative part. The interpretation can be used to compare and contrast the Imperative and the Functional Object Calculi, and to prove properties about them, within a unified framework.
PICCOLA  a Small Composition Language
, 1999
"... Although objectoriented languages are wellsuited to implement software components, they fail to shine in the construction of componentbased applications, largely because objectoriented design tends to obscure a componentbased architecture. We propose to tackle this problem by clearly separating ..."
Abstract

Cited by 30 (9 self)
 Add to MetaCart
Although objectoriented languages are wellsuited to implement software components, they fail to shine in the construction of componentbased applications, largely because objectoriented design tends to obscure a componentbased architecture. We propose to tackle this problem by clearly separating component implementation and composition. In particular, we claim that application development is best supported by consciously applying the paradigm "Applications = Components + Scripts." In this chapter, we propose PICCOLA, a small "composition language" that embodies this paradigm. PICCOLA models components and compositional abstractions by means of communicating concurrent agents. Flexibility, extensibility, and robustness are obtained by modeling both interfaces of components and the contexts they live in by "forms", a special notion of extensible records. Using a concrete example, we illustrate how PICCOLA offers explicit support for viewing applications as compositions of components and show that separating components from their composition improves maintainability.