Basic Actions

complete | escape | fail | commit | diverge | unfold | unfolding A | indivisibly A
A1 and A2 | A1 or A2 | A1 and then A2 | A1 trap A2

   All primitive basic actions:
  • Give no transients, except for escape.
  • Produce no bindings.
  • Make no changes to storage.
  • do not communicate.
  • Redirect no bindings.
   All basic action combinators are:
  • Functionally conducting (see the basic action A1 and A2), except for A1 trap A2, which is functionally composing (see the functional action A1 then A2.
  • declaratively conducting (see the basic action A1 and A2).

    
complete: a primitive basic action. Represents normal termination. Unit for A1andA2, as well as
  for A1 and then A2.
  • Indivisible. Always completes.
   Example

    
escape: a primitive basic action. Represents abnormal termination. Unit for A1 trap A2.
  • Indivisible. Always escapes.
  • Gives any given transients.
   Example

    
fail: a primitive basic action. Represents abortion of the current alternative. Unit for A1 or A2.
  • Indivisible. Always fails.
   Example

    
commit: a primitive basic action. Represents commitment to the current alternative, cutting
  away other current alternatives.
  • Indivisible. Always commits and completes.
   OBS:This action is not implemented by the action interpreter.

    
diverge: a basic action. Represents nontermination.
  • Always diverges.
   Example

    
unfold: a dummy action, standing for the innermost enclosing unfolding.
   Example

    
unfolding A: Represents the (in general, infinite) action formed by continually substituting
  A for unfold. (To avoid singularities in pathological cases, substitute complete and then A, rather
  than just A.)
  • Performs A, but whenever the dummy action unfold is reached, A is performed in place of unfold.
   Example

    
indivisibly A: a basic combination of action A. Represents that the steps of performing
  A are not interleaved with those of other actions performed by the same agent. Also ensures
  that the performance of A cannot be interrupted by an escape or failure occurring outside A. For
  use only when A cannot diverge.
  • Indivisible: A is performed as a single step.
   OBS:This action is not implemented by the action interpreter.

    
A1 or A2: a basic combination of actions A1 or A2. Represents implementation-dependent
  choice; specializes to deterministic choice when one or the other of A1, A2 must fail.
  • Performs either A1orA2. When the performed alternative fails without committing, it is ignored and the other alternative is performed instead.
  • All the transients given to the combination of A1, A2 are given to the performed alternative. On normal or abnormal termination, all the transients given by the performed alternative are given by the combined action.
  • All the bindings received by the combination of A1, A2 are received by the performed alternative. On normal termination, all the bindings produced by the performed alternative are produced by the combined action.
   Example

    
A1 and A2: a basic combination of actions A1, A2. Represents implementation-dependent
  order of performance of indivisible subactions, specializing to independent performance when
  there is no interference between A1 and A2.
  • Basically interleaving: Performs both A1, A2, with arbitrary interleaving of their indivisible steps. An escape or a failure causes any remaining parts of the subactions to be skipped.
  • Functionally conducting: The transients given to the combination of A1, A2 is given to both A1, A2. On normal termination, all the transients given by A1, A2 is collected and given by the combined action---if both give one or more items of transients, these are tupled in the given order. On escape, only the transients given by the escape is given by the combined action.
  • declaratively conducting: The bindings received by the combination of A1, A2 are received by both A1, A2. On normal termination, all the bindings produced by A1, A2 are collected and produced by the combined action---provided that the bindings are all for distinct tokens, otherwise the combined action fails.
   Example

    
A1 and then A2: a basic combination of actions A1, A2. Represents dependency on normal termination.

  • Basically (normal) sequencing: Performs A1 first. If A1 completes, performs A2.
   Example

    
A1 trap A2: a basic action combination. Represents recovery from abnormal termination.

  • Performs A1 first. If A1 escapes, performs A2.
  • Functionally composing (see the functional action A1 then A2 in Section d.2.1).
   action: the sort of all actions.

   Example



    Basic Notation Index | Basic Actions | Basic Yielders | Basic Data