Results 1  10
of
12
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.
Typing and Subtyping for Mobile Processes
 MATHEMATICAL STRUCTURES IN COMPUTER SCIENCE
, 1996
"... The picalculus is a process algebra that supports process mobility by focusing on the communication of channels. Milner's ..."
Abstract

Cited by 244 (16 self)
 Add to MetaCart
The picalculus is a process algebra that supports process mobility by focusing on the communication of channels. Milner's
A Calculus of Mobile Processes, Part I
 I AND II. INFORMATION AND COMPUTATION
, 1989
"... We present the ßcalculus, a calculus of communicating systems in which one can naturally express processes which have changing structure. Not only may the component agents of a system be arbitrarily linked, but a communication between neighbours may carry information which changes that linkage. The ..."
Abstract

Cited by 189 (3 self)
 Add to MetaCart
We present the ßcalculus, a calculus of communicating systems in which one can naturally express processes which have changing structure. Not only may the component agents of a system be arbitrarily linked, but a communication between neighbours may carry information which changes that linkage. The calculus is an extension of the process algebra CCS, following work by Engberg and Nielsen who added mobility to CCS while preserving its algebraic properties. The ßcalculus gains simplicity by removing all distinction between variables and constants; communication links are identified by names, and computation is represented purely as the communication of names across links. After an illustrated description of how the ßcalculus generalises conventional process algebras in treating mobility, several examples exploiting mobility are given in some detail. The important examples are the encoding into the ß calculus of higherorder functions (the calculus and combinatory algebra), the tr...
The Name Discipline of Uniform Receptiveness
 Theoretical Computer Science
, 1997
"... In a process calculus, we say that a name x is uniformly receptive for a process P if: (1) at any time P is ready to accept an input at x, at least as long as there are processes that could send messages at x; (2) the input offer at x is functional, that is, all messages received by P at x are appli ..."
Abstract

Cited by 58 (4 self)
 Add to MetaCart
In a process calculus, we say that a name x is uniformly receptive for a process P if: (1) at any time P is ready to accept an input at x, at least as long as there are processes that could send messages at x; (2) the input offer at x is functional, that is, all messages received by P at x are applied to the same continuation. In the calculus this discipline is employed, for instance, when modeling functions, objects, higherorder communications, remoteprocedure calls. We formulate the discipline of uniform receptiveness by means of a type system, and then we study its impact on behavioural equivalences and process reasoning. We develop some theory and proof techniques for uniform receptiveness, and illustrate their usefulness on some nontrivial examples.
A Typed HigherOrder Programming Language Based on the PiCalculus
, 1993
"... The calculus offers an attractive basis for concurrent programming languages. It is small, elegant, and well understood, and it supports, via simple encodings,a wide range of highlevel constructs such as structured data, higherorder programming, concurrent control structures, and objects. Moreo ..."
Abstract

Cited by 13 (1 self)
 Add to MetaCart
The calculus offers an attractive basis for concurrent programming languages. It is small, elegant, and well understood, and it supports, via simple encodings,a wide range of highlevel constructs such as structured data, higherorder programming, concurrent control structures, and objects. Moreover, familiar type systems for the calculus have direct counterparts in the calculus, yielding strong, static typing for highlevel languages defined in this way. 1 Introduction Though it originated some years before computer science itself, the calculus has come to be regarded as a canonical calculus capturing the notion of sequential computation in an elegant, mathematically tractable presentation. Many of the fundamental issues of sequential programming languages can profitably be studied by considering them in the more abstract setting of the calculus. Conversely, the calculus has strongly influenced the design of many programming languages, notably McCarthy's LISP [McC78]. Mil...
An investigation into Functions as Processes
 In Proc. Ninth International Conference on the Mathematical Foundations of Programming Semantics (MFPS'93
, 1993
"... . In [Mil90] Milner examines the encoding of the calculus into the ßcalculus [MPW92]. The former is the universally accepted basis for computations with functions, the latter aims at being its counterpart for computations with processes. The primary goal of this paper is to continue the study of M ..."
Abstract

Cited by 11 (1 self)
 Add to MetaCart
. In [Mil90] Milner examines the encoding of the calculus into the ßcalculus [MPW92]. The former is the universally accepted basis for computations with functions, the latter aims at being its counterpart for computations with processes. The primary goal of this paper is to continue the study of Milner's encodings. We focus mainly on the lazy calculus [Abr87]. We show that its encoding gives rise to a model, in which a weak form of extensionality holds. However the model is not fully abstract: To obtain full abstraction, we examine both the restrictive approach, in which the semantic domain of processes is cut down, and the expansive approach, in which calculus is enriched with constants to obtain a direct characterisation of the equivalence on terms induced, via the encoding, by the behavioural equivalence adopted on the processes. Our results are derived exploiting an intermediate representation of Milner's encodings into the HigherOrder ßcalculus, an !order extension of ...
Programming in the picalculus: A tutorial introduction to Pict (Pict Version 3.8d)
, 1996
"... Pict is a programming language in the ML tradition, formed by adding highlevel derived forms and a powerful static type system to a tiny core language. The core, Milner's picalculus, has been used as a theoretical foundation for a broad class of concurrent computations. The goal in Pict is to iden ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
Pict is a programming language in the ML tradition, formed by adding highlevel derived forms and a powerful static type system to a tiny core language. The core, Milner's picalculus, has been used as a theoretical foundation for a broad class of concurrent computations. The goal in Pict is to identify idioms that arise naturally when these primitives are used to build working programs  idioms such as basic data structures, protocols for returning results, higherorder programming, selective communication, and concurrent objects. The type system integrates a number of features found in recent work on theoretical foundations for typed objectoriented languages: higherorder polymorphism, simple recursive types, subtyping, and a useful partial type inference algorithm. This is a tutorial introduction to Pict, with examples and exercises. Consumer Safety Warning Pict is an evolving language design and the current implementation is experimental software. You are welcome to use Pict in...
From πcalculus to HigherOrder πcalculus  and back
"... We compare the firstorder and the higherorder paradigms for the representation of mobility in process algebras. The prototypical calculus in the firstorder paradigm is the πcalculus. By generalising its sort mechanism we derive an !order extension, called HigherOrder πcalculus (HOπ). We gi ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
We compare the firstorder and the higherorder paradigms for the representation of mobility in process algebras. The prototypical calculus in the firstorder paradigm is the πcalculus. By generalising its sort mechanism we derive an !order extension, called HigherOrder πcalculus (HOπ). We give examples of its use, including the encoding of calculus. Surprisingly, we show that such an extension does not add expressiveness: Higherorder processes can be faithfully represented at first order. We conclude that the firstorder paradigm, which enjoys a simpler and more intuitive theory, should be taken as basic. Nevertheless, the study of the calculus encodings shows that a higherorder calculus can be very useful for reasoning at a more abstract level.
The name discipline of uniform receptiveness (Extended Abstract)
 In Proceedings of ICALP'97
, 1997
"... this paper, we study the situation in which certain names are uniformly receptive. A name x is receptive in a process P if at any time P is able of offering an input at x (at least as long as there are processes that could send messages at x). The receptiveness of x is uniform if all inputs at x hav ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
this paper, we study the situation in which certain names are uniformly receptive. A name x is receptive in a process P if at any time P is able of offering an input at x (at least as long as there are processes that could send messages at x). The receptiveness of x is uniform if all inputs at x have the same continuation. Receptiveness ensures that any message sent at x can be immediately processed; unformity ensures that there is a unique way in which a message at x may be processed (that is, the input end of x is "functional").