Communicative Actions

send Y | remove Y | offer Y | patiently Y

   All primitive communicative actions:
  • Give no transients.
  • Produce no bindings.
  • Make no changes to storage.
  • Redirect no bindings.
   There is only a unary communicative action combinator.

    
send Y: a primitive communicative action, where Y yields a sort of message. Represents initiating the transmission of a message. The usual form of Y is a message [to Y1] [containing Y2], where Y1 and Y2 yield individuals.
  • Indivisible. Commits and completes when the sort of message yielded by Y includes a message from the current performer (with the next serial number). Fails otherwise.
  • Emits a message of the sort yielded by Y. The serial number of the message is the successor of that of the previous message sent (or contract offered) by the performing agent. Message transmission is reliable, but each message takes an implementation-dependent 'time' to arrive (so message transmission between two particular agents is not necessarily order-preserving).

   OBS:This action is not implemented by the action interpreter.

    
remove Y: a primitive communicative action, where Y is a yielder of individual messages. Represents that a particular message in the buffer has been processed and is to be discarded.
  • Indivisible. Commits and completes when the message yielded by Y is in the buffer. Fails otherwise.
  • Removes the message yielded by Y from the buffer.
   OBS:This action is not implemented by the action interpreter.

    
offer Y: a primitive communicative action, where Y yields sort of contract. Represents initiating the arrangement of a contract with another, perhaps only partially specified, agent. The usual form of Y is a contract [to an agent] [containing abstraction of A], where A is the action to be performed according to the contract.
  • Indivisible. Commits and completes when the sort of contract yielded by Y includes an individual contract from the performer. Fails otherwise.

  • Gives no data.
  • Requests the arrangement of a contract of the sort yielded by Y. Offered contracts are distinguished by serial numbers, as with sent messages. The arrangement of a contract takes an implementation-dependent 'time', which must be finite when there is a continually uncontracted agent of the specified sort.
   OBS:This action is not implemented by the action interpreter.

    
patiently A: a communicative action, where A is an action. Represents busy waiting while A fails. Only useful when A refers to information that may change due to some other action, for instance, the messages in the buffer.
  • Performs A indivisibly, but not indivisible itself. If the performance fails it tries again. Thus it diverges when A always fails.
  • Functionally as A.
  • Declaratively as A.
   OBS:This action is not implemented by the action interpreter.


    Communicative Notation Index | Communicative Actions | Communicative Yielders | Communicative Data