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

Reply via email to