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.
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
|