GNU68-2026-001-brief-selection
Jose E. Marchesi
jemarch@gnu.org
Thu Jan 29 10:35:52 GMT 2026
Hello people!
As we discussed, I just published this GNU extension for supporting a
brief style of selection.
It is already listed in https://algol68-lang.org and in a few minutes I
will be pushing a patch adding support for it to GCC.
Salud!
---
Brief style for selection
*************************
GNU68-2026-001 (draft)
Copyright © 2026 Jose E. Marchesi.
You can redistribute and/or modify this document under the terms of
the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version.
The following specification has been released under the auspices of the
GNU Algol 68 Working Group, and has been scrutinized to ensure that
a. it is strictly upwards-compatible with Algol 68,
b. it is consistent with the philosophy and orthogonal framework of
the language, and
c. it fills a clearly discernible gap in the expressive power of that
language.
The source of this document can be found at
<https://git.sr.ht/~jemarch/gnu68>.
The informal description of this proposal introduces the proposed new
language features, providing a rationale and usage examples.
The formal definition of this proposal uses the existing formalism and
conventions of the Revised Report, and it is expressed as modifications
to the Report.
Finally, the implementation notes of this proposal describes a way in
which the features added by this specification can be implemented. No
implementer should feel committed to do things as described there; the
same language facilities may well be implementable in other ways, more
suitable to specific implementations.
1 Informal Description
**********************
It was early recognized that a shorter alternative representation the
of-symbol was very much needed, considering the fact the bold version
‘OF’ is at least four characters long. This makes certain phrases long
and also slightly laborious to read, like in:
PUB OP + = (POS a,b) POS: (c OF a + c OF b, r OF a + r OF b),
- = (POS a,b) POS: (c OF a - c OF b, r OF a - r OF b);
In his "ALGOL 68 Hardware Representation Recommendations" [AB42.4.2]
Wilfred J. Hansen describes different proposals for shorter alternative
representations of the of-symbol which came out during the preparation
of the Standard Hardware Representation.
Of these, the preferred one was to use the apostrophe character ‘'’,
because:
− Apostrophe is a worthy character.
− It is unused out of string and character denotations.
− It is just one character long.
The proposal was not carried on in the Standard Hardware Representation
because it is fundamentally not compatible with the QUOTE stropping
regime, which was widely used back then. It is unlikely implementations
of GNU Algol 68 will support QUOTE stropping however.
Using the brief form of selection, the example above now becomes:
PUB OP + = (POS a,b) POS: (c'a + c'b, r'a + r'b),
- = (POS a,b) POS: (c'a - c'b, r'a - r'b);
2 Formal Description
********************
Selection now exists in two styles: bold and brief.
5.3 Units associated with stowed values
5.3.1 Selections
5.3.1.1 Syntax
a) REFETY MODE1 NEST selection{5C} :
MODE1 field FIELDS applied field selector with TAG{48d},
STYLE selection token, weak REFLEXETY ROWS of structured with
FIELDS mode NEST SECONDARY{5C},
where (REFETY) is derived from (REFLEXETY){b,c,-}.
Two new symbols have been invented, along with a proposed representation
in the reference language. The ‘of symbol’ is now unused.
9.4.1.f
bold of symbol{53a} of
brief of symbol{53a} '
3 Implementation Notes
**********************
The addition of the brief form of selection to existing implementations
should be pretty straightforward.
It makes sense to support this brief form in both UPPER and SUPPER
stropping. The extension shall be disabled in QUOTE stropping for
obvious reasons.
More information about the Algol68
mailing list