Results 1 - 10
of
13
A Calculus of Broadcasting Systems
- SCIENCE OF COMPUTER PROGRAMMING
, 1991
"... CBS is a simple and natural CCS-like calculus where processes speak one at a time and are heard instantaneously by all others. Speech is autonomous, contention between speakers being resolved nondeterministically, but hearing only happens when someone else speaks. Observationally meaningful laws dif ..."
Abstract
-
Cited by 58 (8 self)
- Add to MetaCart
CBS is a simple and natural CCS-like calculus where processes speak one at a time and are heard instantaneously by all others. Speech is autonomous, contention between speakers being resolved nondeterministically, but hearing only happens when someone else speaks. Observationally meaningful laws differ from those of CCS. The change from handshake communication in CCS to broadcast in CBS permits several advances. (1) Priority, which attaches only to autonomous actions, is simply added to CBS in contrast to CCS, where such actions are the result of communication. (2) A CBS simulator runs a process by returning a list of values it broadcasts. This permits a powerful combination, CBS with the host language. It yields several elegant algorithms. Only processes with a unique response to each input are needed in practice, so weak bisimulation is a congruence. (3) CBS subsystems are interfaced by translators; by mapping messages to silence, these can restrict hearing and hide speech. Reversi...
On the Expressiveness of Purely Functional I/O Systems
, 1989
"... Functional programming languages have traditionally lacked complete, flexible, and yet referentially transparent I/O mechanisms. Previous proposals for I/O have used either the notion of lazy streams or continuations to model interaction with the external world. We discuss and generalize these mo ..."
Abstract
-
Cited by 22 (2 self)
- Add to MetaCart
Functional programming languages have traditionally lacked complete, flexible, and yet referentially transparent I/O mechanisms. Previous proposals for I/O have used either the notion of lazy streams or continuations to model interaction with the external world. We discuss and generalize these models and introduce a third, which we call the systems model, to perform I/O. The expressiveness of the styles are compared by means of an example. We then give a series of surprisingly simple translations between the three models, demonstrating that they are not as different as their programming styles suggest, and implying that the styles could be mixed within a single program. The need to express non-deterministic behavior in a functional language is well recognized. So is the problem of doing so without destroying referential transparency. We survey past approaches to this problem, and suggest a solution in the context of the I/O models described. The I/O system of the purely func...
Programming With Broadcasts
- In CONCUR
, 1993
"... . [Pra91, Pra92] develop CBS, a CCS-like calculus [Mil89] where processes communicate by broadcasting values along a single channel. These values are hidden or restricted by translation to noise. This paper types CBS and restricts it to processes with a unique response to each input. Nondeterminism ..."
Abstract
-
Cited by 20 (7 self)
- Add to MetaCart
. [Pra91, Pra92] develop CBS, a CCS-like calculus [Mil89] where processes communicate by broadcasting values along a single channel. These values are hidden or restricted by translation to noise. This paper types CBS and restricts it to processes with a unique response to each input. Nondeterminism arises only if two processes in parallel both wish to transmit. These restrictions do not reduce the programming power of CBS. But strong and weak bisimulation can now be defined exactly as in CCS, yet capture observationally meaningful relations. Weak bisimulation is a congruence. This paper also shows how to program in CBS in a (lazy) ML framework. A simple CBS simulator is given, and a parallel implementation discussed. The simulator represents data evaluation, recursion and conditionals directly in Lazy ML. It implements an extended CBS with evaluation as well as communication transitions. [Pra91, Pra92] develop a CCS-like [Mil89] calculus of broadcasting systems, CBS. This paper continu...
Broadcasting With Priority
- IN ESOP
, 1994
"... Adding priorities to CCS is difficult, and involves two-stage operational semantics or other complications. By contrast, priorities can be added very simply to a calculus of broadcasting systems (CBS). The reason is the input /output distinction made in CBS, with output actions being autonomous. Pri ..."
Abstract
-
Cited by 8 (6 self)
- Add to MetaCart
Adding priorities to CCS is difficult, and involves two-stage operational semantics or other complications. By contrast, priorities can be added very simply to a calculus of broadcasting systems (CBS). The reason is the input /output distinction made in CBS, with output actions being autonomous. Priority makes sense only for autonomous actions. As in unprioritised CBS, both strong and weak bisimulation are congruences, and capture the intuitively desired equivalences. CBS is also a powerful and natural language, offering an interesting new programming paradigm. Several examples show that priorities extend both the power and the paradigm.
Deterministic Concurrency
- In Proceedings of the 1993 Glasgow Workshop on Functional Programming
, 1993
"... Existing functional languages appear not to be suitable for implementing systems which are inherently concurrent, such as operating system environments. Adaptations to functional languages developed to support such applications have in the past always involved the introduction of non-determinism. ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
Existing functional languages appear not to be suitable for implementing systems which are inherently concurrent, such as operating system environments. Adaptations to functional languages developed to support such applications have in the past always involved the introduction of non-determinism.
Programming Reactive Systems in Haskell
, 1994
"... Certain classes of applications are naturally described as a network of cooperating components, where each component reacts to input as and when it becomes available. This paper builds on previous work on expressing I/O and state-based algorithms safely in a functional language, and presents a new w ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
Certain classes of applications are naturally described as a network of cooperating components, where each component reacts to input as and when it becomes available. This paper builds on previous work on expressing I/O and state-based algorithms safely in a functional language, and presents a new way of expressing reactive systems in a functional language that does not violate vital semantic properties. The approach taken is a pragmatic one in that it integrates constructs for expressing reactive systems within existing framework for writing I/O bound, statebased programs functionally. The original contributions of this paper are twofold; first, we show how the existing monadic IO model can be extended to cope with nondeterminism, and secondly, we introduce primitives for evaluating I/O actions concurrently. 1 Introduction A large class of applications are naturally described as a collection of components cooperating to solve some task. Examples include operating systems and graphica...
Deterministic Concurrency
- In [53
, 1993
"... Existing functional languages appear not to be suitable for implementing systems which are inherently concurrent, such as operating system environments or reactive systems. Adaptations to functional languages developed to support such applications have in the past always involved the introduction of ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Existing functional languages appear not to be suitable for implementing systems which are inherently concurrent, such as operating system environments or reactive systems. Adaptations to functional languages developed to support such applications have in the past always involved the introduction of non-determinism. This paper proposes an adaptation of a functional language which provides concurrency without the introduction of non-determinism or timing information, and indeed without any alteration to the usual semantics, thus retaining the purely declarative nature of functional programming. The expressiveness of this deterministic form of concurrency is explored by presenting and discussing outlines of designs for a file manager, a window system and a process communication mechanism. Taken together, these demonstrate the feasibility of a deterministic design for a complete single-user concurrent working environment. 1 Introduction Functional languages provide for the simple and sem...
Tools for a Calculus of Broadcasting Systems
, 1993
"... This thesis presents two tools to examine agents in a Calculus of Broadcasting Systems, CBS. The first is a simulator implementing a pattern matching version of CBS on top of the functional language Lazy ML. The simulator is proven to be sound and complete. The second is a verification system f ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
This thesis presents two tools to examine agents in a Calculus of Broadcasting Systems, CBS. The first is a simulator implementing a pattern matching version of CBS on top of the functional language Lazy ML. The simulator is proven to be sound and complete. The second is a verification system for logical and equational properties of agents in pure CBS. It is based on the Aalborg TAV system for proofs about CCS processes and only the major changes are described. The thesis also compares the CBS simulator with PFL, which is an implementation of CCS in Standard ML. Key words: process calculus, unbuffered broadcast, concurrency, value-passing, functional languages, nondeterminism, oracles, bisimulation, modal logic. Author's address: Department of Computing Science, Chalmers University of Technology, S-412 96 Goteborg, Sweden. E-mail: jenny@cs.chalmers.se. 1 2 Contents 1 Introduction 3 2 CBS -- a Calculus of Broadcasting Systems 5 2.1 Syntax and semantics of CBS : : : : : ...

