Results 1 -
2 of
2
A Theory of Weak Bisimulation for Core CML
- J. Functional Programming
, 1993
"... Concurrent ML (CML) is an extension of Standard ML of New Jersey with concurrent features similar to those of process algebra. In this paper, we build upon John Reppy's reduction semantics for CML by constructing a compositional operational semantics for a fragment of CML, basedon higherorder proces ..."
Abstract
-
Cited by 38 (7 self)
- Add to MetaCart
Concurrent ML (CML) is an extension of Standard ML of New Jersey with concurrent features similar to those of process algebra. In this paper, we build upon John Reppy's reduction semantics for CML by constructing a compositional operational semantics for a fragment of CML, basedon higherorder process algebra. Using the operational semantics we generalise the notion of weak bisimulation equivalence to build a semantic theory of CML. We give some small examples of proofs about CML expressions, and show that our semantics corresponds to Reppy's up to weak first-order bisimulation. 1 Introduction There have been various attempts to extend standard programming languages with concurrent or distributed features, (Giacalone et al., 1989; Holmstrom, 1983; Nikhil, 1990). Concurrent ML (CML) (Reppy, 1991a; Reppy, 1992; Panangaden & Reppy, 1996) is a practical and elegant example. The language Standard ML is extended with two new type constructors, one for generating communication channels, and t...
A Fully Abstract Semantics for a Concurrent Functional Language With Monadic Types
, 1995
"... This paper presents a typed higher-order concurrent functional programming language, based on Moggi's monadic metalanguage and Reppy's Concurrent ML. We present an operational semantics for the language, and show that a higherorder variant of the traces model is fully abstract for maytesting. This p ..."
Abstract
-
Cited by 20 (4 self)
- Add to MetaCart
This paper presents a typed higher-order concurrent functional programming language, based on Moggi's monadic metalanguage and Reppy's Concurrent ML. We present an operational semantics for the language, and show that a higherorder variant of the traces model is fully abstract for maytesting. This proof uses a program logic based on Hennessy-- Milner logic and Abramsky's domain theory in logical form. 1 Introduction This paper presents an operational semantics for a concurrent functional programming language, based on Reppy's [26, 27] Concurrent ML, and Moggi's [22] monadic metalanguage. CML is a concurrent extension of New Jersey ML, which adds communication primitives based on CCS [19] and CSP [11]. Reppy introduces a new type constructor of events, which can spawn concurrent processes, and communicate with them along channels. Three of the constructors for the event type are: always : a#aevent wrap : (aeventa#b)# (bevent) sync : aevent#a These are: . alwayse is an event whic...

