Terminology

The terminology around the call or function invocation is not exactly the same in all HLLs. Figure 1 summarizes the terminology in this topic.

Figure 1. CALL terminology refresher
CALL terminology refresher

The formats of a Language Environment argument list and parameter list are identical. Rather than refer to both formats in this topic, the term argument list only is used. However, everything that applies to an argument list format also applies to a parameter list format.

There are two access modes for arguments:
Direct
The value of the argument is placed directly in the argument list body.
Indirect
The body of the argument list contains a pointer to the argument value.
Programming languages have two basic argument passing semantics:
By value
The value of the object is passed. No change made by the callee to the argument value is reflected in the calling routine.
By reference
Changes made by the callee to the argument value are reflected in the calling routine.