Results 1 -
5 of
5
Decoding Choice Encodings
, 1999
"... We study two encodings of the asynchronous #-calculus with input-guarded choice into its choice-free fragment. One encoding is divergence-free, but refines the atomic commitment of choice into gradual commitment. The other preserves atomicity, but introduces divergence. The divergent encoding is ..."
Abstract
-
Cited by 87 (5 self)
- Add to MetaCart
We study two encodings of the asynchronous #-calculus with input-guarded choice into its choice-free fragment. One encoding is divergence-free, but refines the atomic commitment of choice into gradual commitment. The other preserves atomicity, but introduces divergence. The divergent encoding is fully abstract with respect to weak bisimulation, but the more natural divergence-free encoding is not. Instead, we show that it is fully abstract with respect to coupled simulation, a slightly coarser---but still coinductively defined---equivalence that does not enforce bisimilarity of internal branching decisions. The correctness proofs for the two choice encodings introduce a novel proof technique exploiting the properties of explicit decodings from translations to source terms.
A semantics for ML concurrency primitives
- In Proc. 17th Annual ACM Symposium on Principles of Programming Languages
, 1992
"... We present a set of concurrency primitives for Standard ML. We define these by giving the transitional semantics of a simple language. We prove that our semantics preserves the expected behaviour of sequential programs. We also show that we can define stores as processes, such that the representatio ..."
Abstract
-
Cited by 80 (3 self)
- Add to MetaCart
We present a set of concurrency primitives for Standard ML. We define these by giving the transitional semantics of a simple language. We prove that our semantics preserves the expected behaviour of sequential programs. We also show that we can define stores as processes, such that the representation has the same behaviour as a direct definition. These proofs are the first steps towards integrating our semantics with the full definition of Standard ML. 1 Background and Motivation There have been several attempts to add concurrency primitives to Standard ML (SML) and related languages [Hol83, Mat91, Rep91a, CM90, Ber89]. However, when we began this work none of these implementations had a published formal definition. The formal definition of SML is an integral part of the development of the language. If we are to add concurrency to the language, it is essential that we have a formal semantics for the new constructs that is compatible with the existing definition. In this paper we prese...
Implementing CCS, the LCS experiment
, 1989
"... machine is implemented with 8 registers and the stack. These registers are E (environment, a linked list), C (the cell packing the code), PC (program counter), R (resumption register, a stack height), P (process positions, encoded as pairs of values), L (process lines, encoded as linked lists), G (p ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
machine is implemented with 8 registers and the stack. These registers are E (environment, a linked list), C (the cell packing the code), PC (program counter), R (resumption register, a stack height), P (process positions, encoded as pairs of values), L (process lines, encoded as linked lists), G (positions accumulator, encoded as P) and Rp (ready processes, encoded as a queue of processes); the stack provided by the Format layer encodes both the S and D abstract registers. There are about 40 basic instructions, plus a number of derived instructions representing frequent sequences of the former, and about 70 primitives (logic, arithmetic, input/output, etc,).
On Guards
, 1987
"... This is a note about the distinction in occam between inputs and outputs, and between those inputs that appear as guards and those that appear as processes in their own right. It explains the restriction that outputs may not appear as guards in occam programs, and records programming techniques for ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
This is a note about the distinction in occam between inputs and outputs, and between those inputs that appear as guards and those that appear as processes in their own right. It explains the restriction that outputs may not appear as guards in occam programs, and records programming techniques for coping with this restriction. An occam programmer will from time to time find himself complaining that something would be so much easier if occam allowed output guards. There is an apparently arbitrary asymmetry in occam's allowing inputs to guard alternatives, but forbidding outputs. First I explain why output guards are forbidden in occam. Essentially, it is very expensive to implement general input and output guards. There are then presentations of systematic ways of eliminating output guards from a csp program as a way of translating it into occam without incurring the prohibitive costs of general guards. There is no claim that the techniques are new, but experience at previous meeting...
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 : : : : : ...

