Results 1  10
of
15
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 283 (9 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 277 (18 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 222 (4 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 66 (5 self)
 Add to MetaCart
(Show Context)
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 Calculus of Communicating Systems with Label Passing
, 1986
"... This report is essential Uffe Engbergs thesis for the MSc degree from Department of Computer Science, Aarhus University except that all proofs of theorems have been left out. Should anyone have interest in particular proofs, they may be obtained by contacting one of the authors. 1 Introduction ..."
Abstract

Cited by 64 (0 self)
 Add to MetaCart
(Show Context)
This report is essential Uffe Engbergs thesis for the MSc degree from Department of Computer Science, Aarhus University except that all proofs of theorems have been left out. Should anyone have interest in particular proofs, they may be obtained by contacting one of the authors. 1 Introduction
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 14 (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 10 (1 self)
 Add to MetaCart
(Show Context)
. 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 ..."
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...
Pict Language Definition
, 1996
"... ions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3.4 Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3.5 Type constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
ions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3.4 Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3.5 Type constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3.6 Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3.7 Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3.8 Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3.9 Kinds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3.10 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4 ExtraLinguistic Features 13 4.1 Separate Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.2 Inline C Code . . . . . . . ...