ETSI
NOTE 2: Inout parameters can be used for functions, altsteps, and test cases only, if not restricted by further rules,
e.g. altsteps activated as defaults.
known types: set of all TTCN-3 predefined types, types defined in a TTCN-3 module and types imported into that
module from other TTCN-3 modules or from non-TTCN-3 modules
lazy evaluation: Lazy evaluation means that evaluation of an expression is delayed during execution until the value or
template instance, to which the result of the evaluation should have been assigned or passed to as actual parameter, is
first referenced at another place than the left hand side of an assignment or an actual parameter passed to a fuzzy or lazy
formal parameter. During execution, this delayed evaluation is carried out at the first actual reference, even when the
result is to be used in an expression that is also subject to lazy evaluation. For the evaluation the actual values at the
time of the evaluation are to be used (not the actual values at the time of the assignment or parameter passing). This
implies that components of the expression may be uninitialized at the time, when execution reaches the assignment or
parameter passing, but may be initialized by the time of the evaluation that can lead to successful evaluation. If, by the
time of the evaluation, execution has left the scope unit, in which one or more components of the expression is defined,
the actual values of the component(s) at the time of leaving the scope unit are to be stored for the purpose of the delayed
evaluation (but only for that, i.e. the values are not accessible for the user).
lazy value or template: A value or template instance is called lazy, when the expression, initializing or partly
initializing it (including actual parameters passed to in formal parameters), is subject to lazy evaluation. When, during
execution, the delayed (lazy) evaluation is taking place, its result is stored in the lazy value or template and the lazy
instance is used further on like ordinary values and templates, until the next use of the lazy variable or parameter on the
left hand side of an assignment. When a new content is assigned to a lazy instance or to its subpart, the right hand side
of the assignment is subject to lazy evaluation again. If, during execution, no expression referencing the lazy object is
evaluated, the lazy value or template instance is never evaluated.
left hand side (of assignment): value or template variable identifier or a field name of a structured type value or
template variable (including array index if any), which stands left to an assignment symbol (:=)
NOTE: A constant, module parameter, timer, structured type field name or a template header (including template
type, name and formal parameter list) standing left of an assignment symbol (:=) in declarations and or a
modified template definitions are out of the scope of this definition as not being part of an assignment.
local visibility: attribute of an entity (constant, variable, etc.) that its identifier can be referenced only within the
function, test case or altstep where it is defined
Main Test Component (MTC): See Recommendation ITU-T X.292 [3].
object: instance of one of the object types (component, default, port and timer)
NOTE: Objects of type default, port or timer, which are owned by the component that instantiated them, are local
objects while objects of type component are global objects. Global objects can be referenced from other
component scopes while references to local objects can only be used by the component they are bound to.
object reference: special kind of value used for instances of component, default, port and timer types which represents
a reference to an existing entity in the TE
NOTE: When used in assignments or parameter passing, only the reference to the entity is copied, but not the
entity itself. An object reference can also be initialized with the special value null in which case it does
not reference an object.
out parameterization: kind of parameterization where the actual parameter's content (the argument) is not passed to
the formal parameter when the parameterized object is invoked, but the content of the formal parameter is passed back
to the actual parameter when the invoked object completes, if the formal parameter has been initialized during the
invocation and the actual parameter is the reference evaluated at the time of the invocation
NOTE 1: In out parameterization, parameters are passed by value.
NOTE 2: Out parameters can be used for functions, altsteps, and test cases only, if not restricted by further rules,
e.g. altsteps activated as defaults.
NOTE 3: Formal an out parameters are uninitialized (unbound) when the invoked object is entered.
Parallel Test Component (PTC): See Recommendation ITU-T X.292 [3].