declaring programs, procedures, and functions, in which a block is given a name (identifier) by which the block may be denoted. Since procedures and functions may be nested, scopes may be nested. 

A procedure or function has a fixed number of parameters, each of which is denoted within the procedure or function by an identifier called theformal parameter. When a procedure or function is activated, an actual quantity has to be indicated for each parameter; the quantity can be referenced from inside the block of the procedure or function through the formal parameter. This quantity is called the actual parameter. There are four kinds of parameters: value parameters, variable parameters, procedural parameters, and functional parameters. In the first case, the actual parameter is an expression which is evaluated, and the value assigned to the formal parameter, once at the beginning of each activation of the procedure or function. The formal parameter represents a local variable. In the case of a variable parameter, the actual parameter denotes a variable and the formal parameter denotes the same variable during the entire activation of the procedure or function. In the case of procedural or functional parameters, the actual parameter is a procedure or function identifier. 

A function is declared analogously to a procedure, except that the function yields a result which must possess the type that is specified in the function declaration. The result type is confined to be a simple type or a pointer type. Functions may be used as constituents in expressions. Assignments to non-local variables and other so-called side effects should be avoided within function declarations. 

## 3. Notation and Terminology 

Syntactic constructs are denoted by descriptive English words (meta-identifiers) written in italics and are defined by rules of Extended Backus-Naur Form (EBNF) [Reference 13]. Each rule defines a meta-identifier by means of an EBNF expression, which consists of one or more alternative phrases separated by vertical bars ( I ). A phrase consists of zero or more elements, each of which is a meta-identifier, a literal symbol enclosed in quotes (" "), or an expression enclosed in matching braces, brackets, or parentheses. 

