Oberon-2 permits also the declaration of variables as open arrays. Open arrays can be used in connection with n LEN to implement flexible procedures for linear algebra. This holds for all value parameters. In contrast to this, for VAR parameters only a reference is transferred. In particular, arrays often contain large amounts of information.
Copying becomes time and space consuming.
In these cases, it is usual to pass variables as VAR parameters, although the contents is not changed and passing by value would be sufficient. More on Records Allocations of a record type T1 to a type T0 are possible if T1 extends the type T0. The assignment transfers then only the fields, which are contained in T0 as well. If a variable P is declared to be of a pointer type, only the memory space for a reference is allocated, but not the for a variable of the base type. NEW tries to supply the memory space for the variable.