Longsety

Meaning

A longsety is a sequence of zero or more long bold tags. The term follows the fashion of the Revised Report, where the suffix -ety means “or empty”.

The Algol 68 modes int, real, compl, bits and bytes can be prefixed with any number of long tag words. The effect of each long is to double the precision of the mode.

At some point, however, a “saturation” point is reached where the addition of extra long has no further effect on the mode. Where that point resides is up to the particular implementation.

For example, if the precision of int is four bytes or 32-bit, the precision of long int is 64-bit, and the precision of long long int is 128-bit.

A longsety can also be used in an integral denotation in order to specify the mode of the denotation. For example in the formula:

long 20 + long 30

The denotations long 20 and long 30 are of mode long int, which determines its precision. The reason why it is important to specify the mode in the denotations is that in Algol 68 it is not legal to widen to a mode having a different precision, so the following identity declaration is not legal:

long long int number = 100; # BAD #

This is because the mode of the denotation 100 is int whereas the expected mode is long long int. This can be achieved by a longsety in the denotation:

long long int number = long long 100;

Note that some Algol 68 implementations allow to widen to modes having a different precision.

Syntax

Simplified [RR 1.2.1.E]:

E) LONGSETY :: long LONGSETY ; EMPTY.

See Also