In the section 3 the idiom
if(p.member()) {
...
}
appeared. Our language provides a short way of writing
this construct
on(p) {
...
}
In fact the on construct provides some extra value.
Informally we said in section 3 that the active
process group is restricted to p inside the body of the p.member() conditional construct. The language
incorporates a more formal idea of an active process group (APG). At any
point of execution some process group is singled out as the APG. An
on(p) construct specifically changes the value of the APG to p. On exit from the construct, the APG is restored to its value on
entry.
Elevating the active process group to a part of the language allows some simplifications. For example, it provides a natural default for the on clause in array constructors. More importantly, formally defining the active process group simplifies the statement of various rules about what operations are legal inside distributed control constructs like on.