Field symbols are placeholders or symbolic names for existing data objects (or parts of existing data
objects), declared by the statement
or by the declaration operator
A memory area is assigned to a field symbol at program runtime. A field symbol does not reserve any
physical space for a field, but is a type of dynamic label for a memory area hosting a particular data
object (or part of the object). A field symbol can be used instead of data objects at operand positions
of statements. When a statement of this type is executed, a memory area must be assigned to the field
symbol by the statement
ASSIGN or the addition
processing internal tables.
Field symbols can point to almost any data object. A field symbol is the equivalent of a
data reference variable dereferenced using
->*. Unlike data reference variables,
value semantics are
used to access a field symbol Accessing a field symbol is like accessing the named data object (or part of the object). For data reference variables, however,
reference semantics apply.
Field symbols are implemented both for generic work with data objects and for explicit casting of data objects (only possible using field symbols).