[COMMITTED] New term Aleph

Jose E. Marchesi jemarch@gnu.org
Thu May 8 09:05:02 GMT 2025


---
 src/Makefile.am     |  2 ++
 src/a68-jargon.texi |  3 ++
 src/aleph.texi      | 82 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 87 insertions(+)
 create mode 100644 src/aleph.texi

diff --git a/src/Makefile.am b/src/Makefile.am
index e1d3b8a..544c506 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -21,6 +21,7 @@ info_TEXINFOS = a68-jargon.texi
 
 a68_jargon_TEXINFOS = actual-parameter.texi \
                       affirmation.texi \
+                      aleph.texi \
                       comment.texi \
                       completer.texi \
                       contraction.texi \
@@ -77,6 +78,7 @@ $(A68_JARGON_POD_FILES): $(algol68_jargon_TEXINFOS)
 man_MANS = a68-jargon.7algol \
            actual-parameter.7algol \
            affirmation.7algol \
+           aleph.7algol \
            comment.7algol \
            completer.7algol \
            contraction.7algol \
diff --git a/src/a68-jargon.texi b/src/a68-jargon.texi
index 4e72f1a..fdbf9fc 100644
--- a/src/a68-jargon.texi
+++ b/src/a68-jargon.texi
@@ -75,6 +75,7 @@ Here are some other nodes which are really subnodes of the ones
 already listed, mentioned here so you can get to them in one step:
 
 Metalanguage
+* Aleph::
 * Pseudo Comment::
 * Reference Language::
 * Representation Language::
@@ -345,6 +346,7 @@ Jose E. Marchesi <jemarch@gnu.org>
 @chapter Metalanguage
 
 @menu
+* Aleph::
 * Pseudo Comment::
 * Reference Language::
 * Representation Language::
@@ -352,6 +354,7 @@ Jose E. Marchesi <jemarch@gnu.org>
 * Taggle::
 @end menu
 
+@include aleph.texi
 @include pseudo-comment.texi
 @include reference-language.texi
 @include representation-language.texi
diff --git a/src/aleph.texi b/src/aleph.texi
new file mode 100644
index 0000000..5b66fec
--- /dev/null
+++ b/src/aleph.texi
@@ -0,0 +1,82 @@
+@c This file is part of the Algol 68 Jargon File.
+@c
+@c Copyright (C) 2024 Jose E. Marchesi
+@c
+@c You can redistribute and/or modify this document under the terms of
+@c the GNU General Public License as published by the Free Software
+@c Foundation, either version 3 of the License, or (at your option) any
+@c later version.
+@c
+@c Alternatively, permission is granted to copy, distribute and/or modify
+@c this document under the terms of the GNU Free Documentation License,
+@c Version 1.3 or any later version published by the Free Software
+@c Foundation; with no Invariant Sections, no Front-Cover Texts, and no
+@c Back-Cover Texts.
+
+@node Aleph
+@section Aleph
+
+@c man title aleph unwritable field names
+
+@subheading Meaning
+@c man begin 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 @code{print}
+or @code{read}. The same technique is used to describe the standard
+prelude.
+
+Consider for example the mode @code{@B{channel}}, which part of the
+standard transput:
+
+@example
+@B{mode} @B{channel} =
+   @B{struct} (@B{proc}(@B{ref} @B{book})@B{bool} reset, set,
+                              get, put, bi, compress, reidf,
+           @B{proc} @B{bool} estab,
+           @B{proc} @B{pos} max pos,
+           ...)
+@end example
+
+@noindent
+The fields of values of mode @code{@B{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
+@code{f}'s, which are obviously impossible to write.  Something like:
+
+@example
+A) F :: f, F ; F.
+
+a) unmentionable field : F tag.
+@end example
+
+@noindent
+In order to represent the productions of the metanotion @code{F} in
+the representation language, they chose the symbol Aleph, since it
+represents an alepth-sub-zero number of @code{f}s.  Thus the mode
+above would be written, using @code{%} for Aleph:
+
+@example
+@B{mode} @B{channel} =
+   @B{struct} (@B{proc}(@B{ref} @B{book})@B{bool} % reset, % set,
+                              % get, % put, % bi, % compress, % reidf,
+           @B{proc} @B{bool} % estab,
+           @B{proc} @B{pos} % max pos,
+           ...)
+@end example
+
+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.
+@c man end
+
+@ignore
+@c man begin AUTHOR
+Jose E. Marchesi <jemarch@gnu.org>
+@c man end
+@end ignore
-- 
2.30.2



More information about the Algol68 mailing list