Processes are defined as extended finite state-machines. At execution, process instances could be created and destroyed dynamically. Each process instance has a unique identifier number (the pid of the instance) and an input fifo buffer storing all the incoming messages (received and not yet consummed by the instance). Process specifications include the name of the process, the number of initial instances (existing in the initial configuration of the system), the list of formal parameters (...), and various process components - the most important being the set of local variables which define the local memory and the (hierarchical) set of states (with the associated transitions) defining the behaviour of the process. In addition, (local) data type, constant or procedure definitions could also be included inside process specifications.
xxxxxxxxxxxxxxxxxxprocess-decl ::=
process process-id ( const ) ;fpar fpar-decl { , fpar-decl }
;
![]()
{ process-component }![]()
endprocess ;
process-component ::=
state![]()
procedure-decl![]()
var-decl![]()
type-decl![]()
const-decl