procedure call (Z.100)

Concrete graphical grammar

<procedure call area> ::=
<procedure call symbol> contains <procedure call body>

<procedure call symbol> ::=

<procedure call body> ::=
[ this ] <procedure identifier> [<actual parameters>]

An <expression> in <actual parameters> corresponding to a formal in;/out; parameter cannot be omitted and must be a <variable identifier>.

After the Model for this has been applied, the <procedure identifier> must denote a procedure which contains a start transition.

If this is used, <procedure identifier> must denote an enclosing procedure.

Semantics

The interpretation of a procedure call transfers the interpretation to the procedure definition referenced in the call, and that procedure graph is interpreted.

The interpretation of the transition containing the procedure call continues when the interpretation of the called procedure is finished.

The actual parameter expressions are interpreted in the order given.

If an <expression> in <actual parameters> is omitted, the corresponding formal parameter has no value associated, i.e. it is "undefined".

Model

If the <procedure identifier> is not defined within the enclosing service or process, the procedure call is transformed into a call of a local, implicitly created, subtype of the procedure.

this implies that when the procedure is specialized, the <procedure identifier> is replaced by the identifier of the specialized procedure.