Ann: Stackless Limbo Dancing Works Fine!

Andrew Henshaw andrew.henshaw at mail.com
Sat May 25 01:02:30 EDT 2002


Fernando Pereira wrote:

> On 5/23/02 11:31 PM, in article uerd0l9d54dac9 at corp.supernews.com, "Andrew
> Henshaw" <andrew.henshaw at mail.com> wrote:
> 
>> Fernando Pereira wrote:
>>> I can't find my CSP book, but from memory I don't think this is correct.
>>> Through || (PAR), it is possible for several concurrent processes to
>>> attempt to read or to write on the same channel. Then the channel
>>> implementation needs a queue to hold all the blocked processes until a
>>> complementary event occurs, at which point one of the pending requests
>>> is matched to the event and the blocked process becomes runable.
>> 
>> I believe that my statement was correct.  From a 1985 version of
>> Communicating Sequential Processes (p. 134):
>> 
>> "We shall observe the convention that channels are used for communication
>> in only one direction and between only two processes.  A channel which is
>> used only for output by a process will be called an output channel of
>> that
>> process; and one used only for input will be called an input channel.  In
>> both cases, we shall say loosely that the channel name is a member of the
>> alphabet of the process."
> 
> As I said, I can't find my copy of the book. But this restriction is a
> *convention* only. The language syntax does not impose that restriction,
> nor does the semantics AFAIK.
> 
> -- F
CSP is a systematic collection of algebraic laws.  Thus, when the 
formulator states "we **shall** observe the convention that channels are 
used ... between only two processes" (emphasis mine), then that is how it 
is defined.  Another wording later in the book eliminates the use of the 
word "convention" and refers to  "...the restriction that a channel is 
between two processes only...."  Perhaps you could find a statement that 
contradicts this.  I cannot find anything that even hints at such a use as 
you describe.  Certainly, as I demonstrated with the Occam examples, you 
can build higher-level constructs that achieve the effect; but, the channel 
primitive itself does not have that characteristic.

Andy Henshaw



More information about the Python-list mailing list