[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Process Placement in Occam 2.1


On 11/03/2006 14:24, Koehne Kai wrote:
I have a specific question concerning the Occam 2.1 standard. The question is if this is legal occam: SEQ
  PROCESSOR 1              -- PROCESSOR outside PLACED PAR!!

My belief is that it is not; it doesn't really make sense. The compiler would have to invent a baton-passing event (which you could yourself, of course, to achieve the effect), and that is contrary to the WYSIWIG philosophy of occam. The configuration language for deploying occam programs was a bit of a bolt-on; PLACED PAR is the only component that intrudes into the language proper.

The BNF grammar that is part of the standard allows it:
parallel = ...
                | placedpar
placedpar = PLACED PAR
                    { placedbar }
                | PLACED PAR replicator
                | PROCESSOR expression
process = ...
                | parallel
                | ...

That just looks like laziness in drawing up the grammar, avoiding repeating the constructor forms in both "outer" and "nested" context. I don't have a copy to hand; does it treat the productions for IF and ALT differently?