Algol 68 stropping

Mohammad-Reza Nabipoor mnabipoor@gnu.org
Sun Jan 4 02:52:34 GMT 2026


Hi.

On Sun, Oct 26, 2025 at 04:08:06PM +0000, John Maybury wrote:
> Hi,
> 
> thanks for the reply.
> 
> > Ok, so if I undersand your description, in Initial stropping
> 
> > - A tag is written as a sequence of {one or more} taggles.  The
> >   taggles may be separated by typographical display features.
> 
> > - A taggle is written by writing, in order, the corresponding worthy
> >   letters, and digits optionally followed by an underscore.  Each taggle
> >   shall start with a lower-case letter.
> 
> > Correct?
> 
> Yes, the difference between Initial stropping and UPPER/SUPPER is that upper-case letters are allowed in an Initial-stropping tag,
> provided they are not the first character of a taggle.
> 
> If an Initial stropping tag consists of only one taggle, then bold words and tags have the same form,
> except a bold word starts with an upper-case letter and a tag starts with a lower-casee letter.
> The symmetry seemed appeaiing to me as does the possibility of camel case tags.
> 
> Being able to put insignificant spaces in tags is a feature that few languages have, AFAIK.
> Allowing snake case and camel case would then cover the popular styles for identifiers in other languages.
> Also continuing to allow insignificant spaces would probably be a plus for Algol 68.
> 
> On the other hand, if we want the reserved words to be fully lower-case (as with SUPPER stropping),
> tags would have to consist of a single taggle (also as with SUPPER stropping).
> Which was why I mentioned a "res Initial stropping", though I believe the GNU MARST implementation of Algol 60
> uses reserved words and allows insignificant spaces in identifiers.


I support this idea.
If I understood it correctly, first letter decides whether something is bold or not.
And to make things more natural to modern reader (programmer), we can reserve
begin/end/for/do/od/if/fi/... on top of Begin/End/For/Do/Od/If/Fi/... symbols.

I'd be happy to be able to define constants like this:

  int kConstant1 = 1,
      kAnotherConstant = 2;

as using SUPPER stropping I cannot do this (I have to do `int k_constant1 = 1, ...;').

Plus being able to have "typographical display features" in identifiers is
very Algolic :)


More information about the Algol68 mailing list