Results 1 
8 of
8
HigherOrder Concurrent Programs with Finite Communication Topology (Extended Abstract)
, 1994
"... Concurrent ML (CML) is an extension of the functional language Standard ML (SML) with primitives for the dynamic creation of processes and channels and for the communication of values over channels. Because of the powerful abstraction mechanisms the communication topology of a given program may be v ..."
Abstract

Cited by 66 (11 self)
 Add to MetaCart
Concurrent ML (CML) is an extension of the functional language Standard ML (SML) with primitives for the dynamic creation of processes and channels and for the communication of values over channels. Because of the powerful abstraction mechanisms the communication topology of a given program may be very complex and therefore an efficient implementation may be facilitated by knowledge of the topology. This paper presents an analysis for determining when a bounded number of processes and channels will be generated. The analysis proceeds in two stages. First we extend a polymorphic type system for SML to deduce not only the type of CML programs but also their communication behaviour expressed as terms in a new process algebra. Next we develop an analysis that given the communication behaviour predicts the number of processes and channels required...
Assigning Types to Processes
 In LICS 2000
, 2000
"... this paper we propose a finegrained typing system for a higherorder pcalculus which can be used to control the effect of such migrating code on local environments. Processes may be assigned different types depending on their intended use. This is in contrast to most of the previous work on ty ..."
Abstract

Cited by 43 (5 self)
 Add to MetaCart
(Show Context)
this paper we propose a finegrained typing system for a higherorder pcalculus which can be used to control the effect of such migrating code on local environments. Processes may be assigned different types depending on their intended use. This is in contrast to most of the previous work on typing processes where all processes are typed by a unique constant type, indicating essentially that they are welltyped relative to a particular environment. Our finegrained typing facilitates the management of access rights and provides host protection from potentially malicious behaviour
Subtyping and Locality in Distributed Higher Order Processes (Extended Abstract)
, 1999
"... . This paper studies one important aspect of distributed systems, locality, using a calculus of distributed higherorder processes in which not only basic values or channels, but also parameterised processes are transferred across distinct locations. An integration of the subtyping of lcalculus a ..."
Abstract

Cited by 33 (4 self)
 Add to MetaCart
(Show Context)
. This paper studies one important aspect of distributed systems, locality, using a calculus of distributed higherorder processes in which not only basic values or channels, but also parameterised processes are transferred across distinct locations. An integration of the subtyping of lcalculus and IOsubtyping of the pcalculus offers a tractable tool to control the locality of channel names in the presence of distributed higher order processes. Using a local restriction on channel capabilities together with a subtyping relation, locality is preserved during reductions even if we allow new receptors to be dynamically created by instantiation of arbitrary higherorder values and processes. We also show that our method is applicable to more general constraints, based on local and global channel capabilities. 1 Introduction There have been a number of attempts at adapting traditional process calculi, such as CCS and CSP, so as to provide support for the modelling of certain asp...
GraphGrammar Semantics of a HigherOrder Programming Language for Distributed Systems
 Graph Transformations in Computer Science: Proceedings of the International Workshop, number 776 in Lecture Notes in Computer Science
, 1994
"... . We will consider a new tiny, yet powerful, programming language for distributed systems, called DHOP, which has its operational semantics given as algebraic graph rewrite rules in a certain category of labeled graphs. Our approach allows to separate actions which affect several processes from loca ..."
Abstract

Cited by 5 (2 self)
 Add to MetaCart
(Show Context)
. We will consider a new tiny, yet powerful, programming language for distributed systems, called DHOP, which has its operational semantics given as algebraic graph rewrite rules in a certain category of labeled graphs. Our approach allows to separate actions which affect several processes from local changes such as variable bindings. We also sketch how to derive an implementation from this specification. 1 Introduction There are already many calculi for programming distributed systems. Roughly, they can be divided into three groups: 1. Fully fledged programming languages (like occam2 [12], POOL [1], and SR [2]) contain a lot of features useful in practical applications. Their semantics is usually given informally. 2. Small languages (like CSP [11], DNP [7], extended typed calculus [18], and Facile [19]) could be used for programming tasks, although they concentrate on the main ideas. Their semantics is formally defined. 3. Process algebras (like ACP [5], CCS [14], ßcalculus [15], a...
A Convex Powerdomain over Lattices: its Logic and λCalculus
, 1997
"... To model at the same time parallel and nondeterministic functional calculi we define a powerdomain functor P such that it is an endofunctor over the category of algebraic lattices. P is locally continuous and we study the initial solution D 1 of the domain equation D = P([D ! D]? ). We derive fro ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
To model at the same time parallel and nondeterministic functional calculi we define a powerdomain functor P such that it is an endofunctor over the category of algebraic lattices. P is locally continuous and we study the initial solution D 1 of the domain equation D = P([D ! D]? ). We derive from the algebras of P the logic of D 1 , that is the axiomatic description of its compact elements. We then define a calculus and a type assignment system using the logic of D 1 as the related type theory. We prove that the filter model of this calculus, which is isomorphic to D 1 , is fully abstract with respect to the observational preorder of the λcalculus.
From CML to Process Algebras (Extended Abstract)
 IN CONCUR'93
, 1993
"... Reppy's language CML extends Standard ML of Milner et al. with primitives for communication. It thus inherits a notion of strong polymorphic typing and may be equipped with a structural operational semantics. As a first step we formulate an effect system for statically expressing the commun ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
Reppy's language CML extends Standard ML of Milner et al. with primitives for communication. It thus inherits a notion of strong polymorphic typing and may be equipped with a structural operational semantics. As a first step we formulate an effect system for statically expressing the communication behaviours of CML programs as these are not reflected in the types. As a second step we adapt the structural operational semantics of CML so as to incorporate behaviours. We then show how types and behaviours evolve in the course of computation: types may decrease and behaviours may loose alternatives as well as decrease. As the syntax of behaviours is rather similar to that of a process algebra our main result may therefore be viewed as regarding the semantics of a process algebra as an abstraction of ...
Linear Type Inference For A Functional Language With Processes
, 1997
"... We investigate an interesting combination of functional and concurrent programming. The concurrent part contains processes as firstclass objects and allows to pass channels as values. We insist, however, that channels are directed and connect at most two processes. This property is ensured by a typ ..."
Abstract
 Add to MetaCart
(Show Context)
We investigate an interesting combination of functional and concurrent programming. The concurrent part contains processes as firstclass objects and allows to pass channels as values. We insist, however, that channels are directed and connect at most two processes. This property is ensured by a type inference system based on linear types. We also show that channels are in some sense universal for implementing linear abstract datatypes.