POINT stropping (The GNU Algol 68 Compiler)

#### 5.4.1 POINT stropping ¶

POINT stropping is in a way the most fundamental of the three standard regimes. It was designed to work in installations with limited character sets that provide only one alphabet, one set of digits, and a very restricted set of other symbols.

In POINT stropping a bold word is represented by its constituent letters and digits preceded by a point character. For example, the symbol `bold begin symbol` in the strict language, which is represented as begin in bold face in the reference language, would be represented as `.BEGIN` in POINT stropping.

More examples are summarized in the following table.

Strict language | Reference language | POINT stropping
--- | --- | ---
`true symbol` | true | `.TRUE`
`false symbol` | false | `.FALSE`
`integral symbol` | int | `.INT`
`completion symbol` | exit | `.EXIT`
`bold-letter-c-...` | crc32 | `.CRC32`

In POINT stropping a tag is represented by writing its constituent non-bold letters and digits in order. But they are organized in several taggles.

Each taggle is a sequence of one or more letters and digits, optionally followed by an underscore character. For example, the tag `PRINT` is composed of a single taggle, but the tag `PRINT_TABLE` is composed of a first taggle `PRINT_` followed by a second taggle `TABLE`.

To improve readability it is possible to insert zero or more white space characters between the taggles in a tag. Therefore, the tag `PRINT_TABLE` could have been written `PRINT TABLE`, or even `PRINT_ TABLE`. This is the reason why Algol 68 identifiers, labels and field selectors can and do usually feature white spaces in them.

It is important to note that both the trailing underscore characters in taggles and the white spaces in a tag do not contribute anything to the denoted tag: these are just stropping artifacts aimed to improve readability. Therefore `FOOBAR` `FOO BAR`, `FOO_BAR` and `FOO_BAR_` are all representations of the same tag, that represents the `letter-f-letter-o-letter-o-letter-b-letter-a-letter-r` language construct.

Below is the text of an example Algol 68 procedure encoded in POINT stropping.

    .PROC RECSEL OUTPUT RECORDS = .VOID:
    .BEGIN .BITS FLAGS
             := (INCLUDE DESCRIPTORS | REC F DESCRIPTOR | REC F NONE);
           .RECRSET RES = REC DB QUERY (DB, RECUTL TYPE,
                                        RECUTL QUICK, FLAGS);
           .RECWRITER WRITER := REC WRITER FILE NEW (STDOUT);

           SKIP COMMENTS .OF WRITER := .TRUE;
           .IF RECUTL PRINT SEXPS
           .THEN MODE .OF WRITER := REC WRITER SEXP .FI;
           REC WRITE (WRITER, RES)
    .END