On 16 Jan 2011, at 03:58, Jan-Willem Maessen wrote:
Actually, the first presentation of M-structures is rather older than
that. See Barth, Nikhil, and Arvind's FPCA '91 paper:
http://portal.acm.org/citation.cfm?id=652538
The original formulation was indeed in terms of "take" and "put",
though unconditional read and write primitives were prtty commonly
used in Id programs. The take/put view can also usefully be thought
of as a 1-element blocking channel.
The full spectrum of one-element communication protocols is set out in
H R Simpson. The MASCOT method. Software Engineering Journal, 1(3):103–
120, March 1986.
The notation was known as Real Time Networks. In this scheme, there
are four types of protocol, each useful in different circumstances:
blocking read, blocking write: a channel
non-blocking read, blocking write: a constant
blocking read, non-blocking write: a signal
non-blocking read, non-blocking write: a pool
The first of these, channel, corresponds to the MVar. The pool
corresponds to an IORef.
Regards,
Malcolm
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe