An entity instance, henceforth referred to simply as an entity, represents a specific object in the physical system and may be created and destroyed dynamically. An entity is created by the execution of a new statement and is automatically assigned a unique identifier on creation. For instance, the following statement creates a new instance of a manager entity and stores its identifier in variable r1 . Entities communicate with each other using buffered message-passing. Maisie defines a type called message , which is used to define the types of messages that may be received by an entity.
Every entity is associated with a unique message-buffer.
A message is deposited in the message buffer of an entity by executing an invoke statement. An entity accepts messages from its message-buffer by executing a wait statement. If tc is omitted, it is set to an arbitrarily large value. The guard is a side-effect free boolean expression that may reference local variables or message parameters. If omitted, the guard is assumed to be the constant true .