Results 1  10
of
47
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).
Explicit Fusions
, 2000
"... We introduce explicit fusions of names. An explicit fusion is a process that exists concurrently with the rest of the system and enables two names to be used interchangeably. Explicit fusions provide a smallstep account of reaction in process calculi such as the pi calculus and the fusion calcu ..."
Abstract

Cited by 50 (7 self)
 Add to MetaCart
We introduce explicit fusions of names. An explicit fusion is a process that exists concurrently with the rest of the system and enables two names to be used interchangeably. Explicit fusions provide a smallstep account of reaction in process calculi such as the pi calculus and the fusion calculus. In this respect they are similar to the explicit substitutions of Abadi, Cardelli and Curien, which do the same for the lambda calculus. In this paper, we give a technical foundation for explicit fusions. We present the piF calculus, a simple process calculus with explicit fusions, and define a strong bisimulation congruence. We study the embeddings of the fusion calculus and the pi calculus. The former is fully abstract with respect to bisimulation.
Adding roles to CORBA objects
 IEEE Transactions on Software Engineering
"... Abstract—Traditional IDLs were defined for describing the services that objects offer, but not those services they require from other objects, nor the relative order in which they expect their methods to be called. Some of the existing proposals try to add protocol information to object interfaces, ..."
Abstract

Cited by 37 (10 self)
 Add to MetaCart
Abstract—Traditional IDLs were defined for describing the services that objects offer, but not those services they require from other objects, nor the relative order in which they expect their methods to be called. Some of the existing proposals try to add protocol information to object interfaces, but most of them fail to do so in a modular way. In this paper we propose an extension of the CORBA IDL that uses a sugared subset of the polyadiccalculus for describing object service protocols, based on the concept of roles. Roles allow the modular specification of the observable behavior of CORBA objects, reducing the complexity of the compatibility tests. Our main aim is the automated checking of protocol interoperability between CORBA objects in open componentbased environments, using similar techniques to those used in software architecture description and analysis. In addition, our proposal permits the study of substitutability between CORBA objects, as well as the realization of dynamic compatibility tests during their runtime execution. Index Terms—Interface definition languages, software components, componentbased software development, protocols, compatibility and substitutability of components.
Compatibility and inheritance in software architectures
 Science of Computer Programming
, 2001
"... The application of formal methods to the development of software depends on the availability of adequate models and formalisms for each of the stages of the development process. In this work, we focus on the level of design called Software Architecture. At this level, the system is described as a co ..."
Abstract

Cited by 22 (8 self)
 Add to MetaCart
The application of formal methods to the development of software depends on the availability of adequate models and formalisms for each of the stages of the development process. In this work, we focus on the level of design called Software Architecture. At this level, the system is described as a collection of interrelated components, and it is here where the properties derived from system’s structure can be naturally analyzed. Our approach uses process algebras as a formal basis for the description and analysis of software architectures. Process algebras are widely accepted for the specification of software systems. In particular πcalculus addresses the description of systems with a dynamic or evolving topology, and permits their analysis for bisimilarity and other interesting properties. Though bisimilarity determines the equivalence of behavior, more flexible relations are needed in the context of Software Engineering, in order to support formally the notions of conformance and refinement of behavior. In this paper we present a relation of compatibility in the context of πcalculus which formalizes the notion of conformance of behavior between software components. Our approach is enhanced with the definition of a relation of inheritance among processes. This relation preserves compatibility and indicates whether a process can be considered as a specialization or extension of another one. The suitability of our approach is shown by its application to the field of Software Architecture 1.
A Proof Search Specification of the πCalculus
 IN 3RD WORKSHOP ON THE FOUNDATIONS OF GLOBAL UBIQUITOUS COMPUTING
, 2004
"... We present a metalogic that contains a new quantifier (for encoding "generic judgment") and inference rules for reasoning within fixed points of a given specification. We then specify the operational semantics and bisimulation relations for the finite πcalculus within this metalogic. Since we ..."
Abstract

Cited by 21 (11 self)
 Add to MetaCart
We present a metalogic that contains a new quantifier (for encoding "generic judgment") and inference rules for reasoning within fixed points of a given specification. We then specify the operational semantics and bisimulation relations for the finite πcalculus within this metalogic. Since we
Solos in concert
 IN ICALP’99, LNCS 1644:513–523
, 1999
"... We present a calculus of mobile processes without prefix or summation, and using two different encodings we show that it can express both action prefix and guarded summation. One encoding gives a strong correspondence but uses a match operator; the other yields a slightly weaker correspondence but u ..."
Abstract

Cited by 21 (4 self)
 Add to MetaCart
We present a calculus of mobile processes without prefix or summation, and using two different encodings we show that it can express both action prefix and guarded summation. One encoding gives a strong correspondence but uses a match operator; the other yields a slightly weaker correspondence but uses no additional operators.
Matching of Bigraphs
 PREPRINT OF GTVC 2006
, 2006
"... We analyze the matching problem for bigraphs. In particular, we present a sound and complete inductive characterization of matching of binding bigraphs. Our results pave the way for a provably correct matching algorithm, as needed for an implementation of bigraphical reactive systems. ..."
Abstract

Cited by 20 (11 self)
 Add to MetaCart
We analyze the matching problem for bigraphs. In particular, we present a sound and complete inductive characterization of matching of binding bigraphs. Our results pave the way for a provably correct matching algorithm, as needed for an implementation of bigraphical reactive systems.
A prooftheoretical approach to communication
 Proceedings of ICALP '97, volume 1256 of LNCS
, 1997
"... Abstract. The paper investigates a concurrent computation model, chi calculus, in which communications resemble cut eliminations for classical proofs. The algebraic properties of the model are studied. Its relationship to sequential computation is illustrated by showing that it incorporates the oper ..."
Abstract

Cited by 19 (4 self)
 Add to MetaCart
Abstract. The paper investigates a concurrent computation model, chi calculus, in which communications resemble cut eliminations for classical proofs. The algebraic properties of the model are studied. Its relationship to sequential computation is illustrated by showing that it incorporates the operational semantics of the callbyname lambda calculus. Practically the model has pi calculus as a submodel. 1 Communication as Cut Elimination Concurrent computation is currently an openended issue. The situation is in contrast with sequential computation whose operational semantics is formalized by, among others, the λcalculus ([2]). In retrospect, the λcalculus can be seen as a fallout of proof theory. CurryHoward’s propositionastype principle allows one to code up constructive proofs as typed terms. At the core of the constructive logic is the minimal logic, whose type theoretical formulation gives rise to, roughly, the simply typed λcalculus. Now the untyped λcalculus is obtained from the simply typed λcalculus by removing all the typing information.
Deciding Framed Bisimilarity
, 2002
"... The spicalculus, proposed by Abadi and Gordon, is a process calculus based on the picalculus and is intended for reasoning about the behaviour of cryptographic protocols. We consider the finitecontrol fragment of the spicalculus, showing it to be Turingpowerful (a result which is joint work wit ..."
Abstract

Cited by 18 (0 self)
 Add to MetaCart
The spicalculus, proposed by Abadi and Gordon, is a process calculus based on the picalculus and is intended for reasoning about the behaviour of cryptographic protocols. We consider the finitecontrol fragment of the spicalculus, showing it to be Turingpowerful (a result which is joint work with Josva Kleist, Uwe Nestmann, and Björn Victor.) Next, we restrict our attention to finite (nonrecursive) spicalculus. ...
Extending CORBA Interfaces with Protocols
 The Computer Journal
, 2001
"... Traditional IDLs were defined for describing the services that objects offer, but not those services they require from other objects, nor the relative order in which they expect their methods to be called. In this paper we propose an extension of the CORBA IDL that uses a sugared subset of the polya ..."
Abstract

Cited by 15 (5 self)
 Add to MetaCart
Traditional IDLs were defined for describing the services that objects offer, but not those services they require from other objects, nor the relative order in which they expect their methods to be called. In this paper we propose an extension of the CORBA IDL that uses a sugared subset of the polyadic #calculus for describing object service protocols, aimed at the automated checking of protocol interoperability between CORBA objects in open componentbased environments. In addition, some advantages and disadvantages of our proposal are discussed, as well as some of the practical limitations encountered when trying to implement and use this sort of IDL extensions in open systems.