A shortsety is a sequence of one or more short
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 short
tag words. The effect of each short
is
to half the precision of the mode.
At some point, however, a “saturation” point is reached where the
addition of extra short
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 short int
is 16-bit, and the
precision of short short int
is 8-bit.
A shortsety can also be used in an integral denotation in order to specify the mode of the denotation. For example in the formula:
short 20 + short 30
The denotations short 20
and short 30
are of mode
short 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:
short short int number = 10; # BAD #
This is because the mode of the denotation 100
is int
whereas the expected mode is short short int
. This
can be achieved by a shortsety in the denotation:
short short int number = short short 10;
Note that some Algol 68 implementations allow to widen to modes having a different precision.
Simplified [RR 1.2.1.F]:
F) SHORTSETY :: short SHORTSETY ; EMPTY.