Previous

2.1.4. Actions

{Suit the action to the word, the word to the action. Hamlet, William Shakespeare.}

2.1.4.1. Elaboration

a) The "elaboration" of certain scenes {those whose constructs are designated by certain paranotions} is specified in the sections of this Report headed "Semantics", which describe the sequence of "actions" which are to be carried out during the elaboration of each such scene.

{Examples of actions which may be specified are:

· the causing to hold of relationships,

· the creation of new names, and

· the elaboration of other scenes.}

The "meaning" of a scene is the effect of the actions carried out during its elaboration. Any of these actions or any combination thereof may be replaced by any action or combination which causes the same effect.

b) The elaboration of a scene S may "yield" a value. If the construct of S is a MOID-NOTION, then that value is, unless otherwise specified, {of such a mode that it is} acceptable to {2.1.3.6.d } 'MOID'.

{This rule makes it possible, in the semantics, to discuss yields without explicitly prescribing their modes.}

c) If the elaboration of some construct A in some environ E is not otherwise specified in the semantics of this Report, and if B is the only direct descendent of A which needs elaboration {see below}, then the elaboration of A in E consists of the elaboration of B in E and the yield, if any, of A is the yield, if any, of B {; this automatic elaboration is termed the "pre-elaboration" of A in E} .

A construct needs no elaboration if it is invisible {1.1.3.2.h }, if it is a symbol {9.1.1.h }, or if its elaboration is not otherwise specified in the semantics of this Report and none of its direct descendents needs elaboration.

{Thus the elaboration of the reference-to-real-closed-chause {3.1.1.a } (x := 3.14) is (and yields the same value as) the elaboration of its constituent reference-to-real-serial-clause {3.2.1.a } x := 3.14.}

2.1.4.2. Serial and collateral actions

a) An action may be "inseparable", "serial" or "collateral". A serial or collateral action consists of one or more other actions, termed its "direct actions". An inseparable action does not consist of other actions {; what actions are inseparable is left undefined by this Report}.

b) A "descendent action" of another action B is a direct action either of B, or of a descendent action of B.

c) An action A is the "direct parent" of an action B if B is a direct action {a}of A.

d) The direct actions of a serial action S take place one after the other; i.e., the completion {2.1.4.3.c, d } of a direct action of S is followed by the initiation {2.1.4.3.b, c } of the next direct action, if any, of S. {The elaboration of a scene, being in general composed of a sequence of actions, is a serial action.}

e) The direct actions of a collateral action are merged in time; i.e., one of its descendent inseparable actions which, at that moment, is "active" {2.1.4.3.a } is chosen and carried out, upon the completion {2.1.4.3.c } of which another such action is chosen, and so on {until all are completed}.

If two actions {collateral with each other} have been said to be "incompatible with" {10.2.4 } each other, then {they shall not be merged; i.e.,} no descendent inseparable action of the one shall (then the one {if it is already inseparable} shall not) be chosen if, at that moment, the other is active and one or more, but not all, of its descendent inseparable actions have already been completed; otherwise, the method of choice is left undefined in this Report.

f) If one or more scenes are to be "elaborated collaterally", then this elaboration is the collateral action consisting of the {merged} elaboration of those scenes.

2.1.4.3. Initiation, completion and termination

a) An action is either "active" or "inactive".

An action becomes active when it is "initiated" {b, c}or "resumed" {g}and it becomes inactive when it is "completed" {c, d}, "terminated" {e}, "halted" {f}or "interrupted" {h}.

b) When a serial action is "initiated", then the first of its direct actions is initiated. When a collateral action is "initiated", then all of its direct actions are initiated.

c) When an inseparable action is "initiated", it may then be carried out {see 2.1.4.2.e } , whereupon it is "completed".

d) A serial action is "completed" when its last direct action has been completed. A collateral action is "completed" when all of its direct actions have been completed.

e) When an action A {whether serial or collateral} is "terminated", then all of its direct actions {and hence all of its descendent actions} are terminated {whereupon another action may be initiated in its place} . {Termination of an action is brought about by the elaboration of a jump {5.4.4.2 }.}

f) When an action is "halted", then all of its active direct actions {and hence all of its active descendent actions} are halted. {An action may be halted during a "calling" of the routine yielded by the operator DOWN {10.2.4.d }, whereupon it may subsequently be resumed during a calling of the routine yielded by the operator UP {10.2.4.e }.}

If, at any time, some action is halted and it is not descended from a "process" of a "parallel action" {10.2.4 } of whose other process(es) there still exist descendent active inseparable actions, then the further elaboration is undefined. {Thus it is not defined that the elaboration of the collateral-clause in

BEGIN SEMA sergei = LEVEL 0;
    ( PAR BEGIN (DOWN sergei; print(pokrovsky)), SKIP END,
      ( read(pokrovsky); UP sergei))
END
will ever be completed.}

g) When an action A is "resumed", then those of its direct actions which had been halted consequent upon the halting of A are resumed.

h) An action may be "interrupted" by an event {e.g., "overflow"} not specified by the semantics of this Report but caused by the computer if its limitations {2.2.2.b } do not permit satisfactory elaboration. When an action is interrupted, then all of its direct actions, and possibly its direct parent also, are interrupted. {Whether, after an interruption, that action is resumed, some other action is initiated or the elaboration of the program ends, is left undefined by this Report.}

{The effect of the definitions given above is as follows:

During the elaboration of a program {2.2.2.a } the elaboration of its closed-clause in the empty primal environ is active. At any given moment, the elaboration of one scene may have called for the elaboration of some other scene or of several other scenes collaterally. If and when the elaboration of that other scene or scenes has been completed, the next step of the elaboration of the original scene is taken, and so on until it, in turn, is completed.

It will be seen that all this is analogous to the calling of one subroutine by another; upon the completion of the execution of the called subroutine, the execution of the calling subroutine is continued; the semantic rules given in this Report for the elaboration of the various paranotions correspond to the texts of the subroutines; the semantic rules may even, in suitable circumstances, invoke themselves recursively (but with a different construct or in a different environ on each occasion).

Thus there exists, at each moment, a tree of active actions descended {2.1.4.2.b } from the elaboration of the program.}
 
Next