Aleph

Meaning

The transput section of the Revised Report consists in a description of the transput facilities in the form of near-Algol 68 code, intended to serve as a precise reference of the intended programming interface and also of the semantics of the several operations like print or read. The same technique is used to describe the standard prelude.

Consider for example the mode channel, which part of the standard transput:

mode channel =
   struct (proc(ref book)bool reset, set,
                              get, put, bi, compress, reidf,
           proc bool estab,
           proc pos max pos,
           ...)

The fields of values of mode channel are not supposed to be accessed by users. In fact, one may imagine a transput implementation that uses different names for the fields, or a completely different set of fields. Algol 68, however, doesn’t have secret fields.

In order to denote structure fields that-should-not-be-named, the authors of the Report resorted to a clever syntactic trick: to precede the fields names with a metanotion that produces an infinite number of f’s, which are obviously impossible to write. Something like:

A) F :: f, F ; F.

a) unmentionable field : F tag.

In order to represent the productions of the metanotion F in the representation language, they chose the symbol Aleph, since it represents an alepth-sub-zero number of fs. Thus the mode above would be written, using % for Aleph:

mode channel =
   struct (proc(ref book)bool % reset, % set,
                              % get, % put, % bi, % compress, % reidf,
           proc bool % estab,
           proc pos % max pos,
           ...)

The WG 2.1, however, didn’t appreciate the joke, and ended using some strange glyph in both Report and Revised Report to represent Aleph.