Actual Declarer

Meaning

An actual declarer specifies the mode of the value being created by a generator. The generator may be either explicit, or the implicit sample-generator in a variable declaration. For example, in the following identity declaration the int declarer specified in the heap generator is an actual declarer:

int datum = heap int;

In the following equivalent variable declarations, the int declarers are an actual declarer used by the sample-generators:

heap int foo;
loc int bar;
int baz;

Actual declarers specifying row modes shall include bounds information. The bounds information provides enough information to the generators to calculate the total size of the generated value. For example, the following variable declaration declares a variable referring to an array of n integers:

[n]int numbers;

Another construct that uses actual declarers is the mode declaration, which associates a name to some given mode. The mode at the right-hand side of a mode declaration shall be specified by an actual declarer. For example, consider the following mode declaration:

mode matrix = [3,3]real;

The declaration above declares a mode matrix to be a row-row-real, specified by the actual declarer [3,3]real. The mode indication matrix can now be used to denote that mode, like for example:

matrix m = heap matrix;

Where the first instance of matrix is used as a formal declarer and bounds are ignored. The second instance of matrix is used as an actual declarer, and bounds are significant.

See Also