Differences
This shows you the differences between two versions of the page.
Both sides previous revision
Previous revision
|
Next revision
Both sides next revision
|
language:langs:chp [2022/08/02 20:01] rajit [An example] |
language:langs:chp [2023/01/02 07:39] rajit [Channels in expressions] |
If ''A'' is an input port, then ''A'' can participate in a //channel expression//. For example, we can write: | If ''A'' is an input port, then ''A'' can participate in a //channel expression//. For example, we can write: |
<code act> | <code act> |
*[[A=3 -> X!true;A?x | [A=3 -> X!true;A?x |
[]A!=3 -> X!false;A?x | []A!=3 -> X!false;A?x |
] | ] |
</code> | </code> |
Here, ''A=3'' is a channel expression. This has the following meaning: first, wait for a value to be pending on the input channel ''A''; then compare it to 3. In other words, this expression includes an //implicit// probe. It also permits the pending value on ''A'' to be inspected. Note that ''A!=3'' //also includes waiting for a value to be pending on the input channel//, and is not the literal negation of the condition corresponding to ''A=3''. In other words, in the program fragment above, the selection statement should be read: wait for a value to be pending on input channel ''A''; if the value is 3, do the first set of statements; otherwise pick the second set of statements. | Here, ''A=3'' is a channel expression. This has the following meaning: first, wait for a value to be pending on the input channel ''A''; then compare it to 3. In other words, this expression includes an //implicit// probe. It also permits the pending value on ''A'' to be inspected. Note that ''A!=3'' //also includes waiting for a value to be pending on the input channel//, and is not the literal negation of the condition corresponding to ''A=3''. In other words, in the program fragment above, the selection statement should be read: wait for a value to be pending on input channel ''A''; if the value is 3, do the first set of statements; otherwise pick the second set of statements. |