Given a set of processes and a set of tests on these processes we show how to define in a natural way three different eyuitalences on processes. ThesP equivalences are applied to a particular language CCS. We give associated complete proof systems and fully abstract models. These models have a simple representation in terms of trees. 86 R. de Nicr)la, M.C.B. Hennessy a unary postfixed predicate on computations, which we denote by fi: CQ if (ij c is unsuccessful, or (ii) I" contains a state S, such that ST and is not preceded by a successful state. By convention a state precedes itself. We also use 4 to denote the negation of 9. The usual notion on input-output can be viewed as a simple instance of the general setting, as can be seen from the following example. Example. Let 9 denote a set of nondeterministic programs for computing over the natural numbers, with the property that they either compute forever or they halt with some natural number as output. For each pair of natural numbers (n, m) we have an observer 0((n, m)',. This observer, when applied to a program p, will attempt to discover if p will give output m on input n. Thus Comp(O(n, m), p) will consist of all computations of the form (i) a computation generated by p on input n, followed by (ii) if this computation halts examine the output. If it is IPI, then go to a successful state ss. If it is not m, go to a deadlocked state sD.
Abstract. Given a set of processes and a set of tests on these processes we show how to define in a natural way three different eyuitalences on processes. ThesP equivalences are applied to a particular language CCS. We give associated complete proof systems and fully abstract models. These models have a simple representation in terms of trees.
We investigate the issue of designing a kernel programming language for Mobile Computing and describe Klaim, a language that supports a programming paradigm where processes, like data, can be moved from one computing environment to another. The language consists of a core Linda with multiple tuple spaces and of a set of operators for building processes. Klaim naturally supports programming with explicit localities. Localities are first-class data (they can be manipulated like any other data), but the language provides coordination mechanisms to control the interaction protocols among located processes. The formal operational semantics is useful for discussing the design of the language and provides guidelines for implementations.Klaim is equipped with a type system that statically checks access rights violations of mobile agents. Types are used to describe the intentions (read, write, execute, etc.) of processes in relation to the various localities. The type system is used to determine the operations that processes want to perform at each locality, and to check whether they comply with the declared intentions and whether they have the necessary rights to perform the intended operations at the specific localities. Via a series of examples, we show that many mobile code programming paradigms can be naturally implemented in our kernel language. We also present a prototype implementation of Klaim in Java.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.