Previous

9.4. The reference language

a) The reference language provides representations for various symbols, including an arbitrarily large number of TAX-symbols {where TAX :: TAG ; TAB ; TAD ; TAM.} . The representations of some of them are specified below {9.4.1 }, and to these may be added suitable representations for style-TALLY-letter-ABC-symbols and style-TALLY-monad-symbols and any terminal productions of 'STYLE other PRAGMENT item' {9.2.1.d } and of 'other string item' {8.1.4.1.d }. Representations are not provided for any of these {but they enable individual implementations to make available their full character sets for use as characters, to provide additional or extended alphabets for the construction of TAG- and TAB-symbols, and to provide additional symbols for use as operators} . There is not, however, {and there must not be,} except in representations of the standard-, and other, preludes {10.1.3.Step 6 }, any representation of the letter-aleph-symbol or the primal-symbol. {For the remaining TAX-symbols, see 9.4.2 . There are, however, some symbols produced by the syntax, e.g., the brief-pragmat-symbol, for which no representation is provided at all. This does not preclude the representation of such symbols in other representation languages.}

b) Where more than one representation of a symbol is given, any of them may be chosen. Moreover, it is sufficient for an implementation of the reference language to provide only one. Also, it is not necessary to provide a representation of any particular MONAD-symbol or NOMAD-symbol so long as those that are provided are sufficient to represent at least one version {10.1.3.Step 3 } of each operator declared in the standard-prelude.

{For certain different symbols, one same or nearly the same representation is given; e.g., the representation ":" is given for the routine-symbol, the colon-symbol and the up-to-symbol and ":" for the label-symbol. It follows uniquely from the syntax which of these four symbols is represented by an occurrence, outside comments, pragmats and string-denotations, of any mark similar to either of those representations. It is also the case that ".." could be used, without ambiguity, for any of them, and such might indeed be necessary in implementations with limited character sets. It may be noted that, for such implementations, no ambiguity would be introduced were "(/" and "/)" to be used as representations of the style-ii-sub-symbol and the style-ii-bus-symbol, respectively.

Also, some of the given representations appear to be composite; e.g., the representation ":=" of the becomes-symbol appears to consist of ":", the representation of the routine-symbol, etc., and "", the representation of the equals-symbol and of the is-defined-as-symbol. It follows from the syntax that ":=" can occur, outside comments, pragmats and string-denotations, as a representation of the becomes-symbol only (since "" cannot occur as the representation of a monadic-operator). Similarly, the other given composite representations do not cause ambiguity.}

c) The fact that the representations of the letter-ABC-symbols given {9.4.1.a } are usually spoken of as small letters is not meant to imply that the corresponding capital letters could not serve equally well. {On the other hand, if both a small letter and the corresponding capital letter occur, then one of them is presumably the representation of some style-TALLY-letter-ABC-symbol or of a bold-letter-ABC-symbol. See also 1.1.5.b for the possibility of additional 'ABC's in a variant of the language.}

d) A "typographical display feature" is a blank, or a change to a new line or a new page. Such features, when they appear between the symbols of a construct in the reference language, are of no significance and do not affect the meaning of that construct. However, a blank contained within a string- or character-denotation is one of the representations of the space-symbol {9.4.1.b } rather than a typographical display feature. Where the representation of a symbol in the reference language is composed of several marks {e.g., TO, :=} , those marks form one {indivisible} symbol and, unless the contrary is explicitly stated {9.4.2.2.a, c }, typographical display features may not separate them.

9.4.1. Representations of symbols

a) Letter symbols

representation

letter a symbol{814c , 82k, 942B , A346b} a
letter b symbol{814c , 82k, 942B , A344b} b

9.4.2. Other TAX symbols

9.4.2.1. Metasyntax

A) TAG{D,F,K,48a,b,c,d } :: LETTER{B}; TAG LETTER{B}; TAG DIGIT{C}.

B) LETTER{A} :: letter ABC{94a } ; letter aleph{-}; style TALLY letter ABC{-}.

C) DIGIT{A} :: digit zero{94b } ; digit one{94b } ; digit two{94b} ; digit three{94b } ; digit four{94b} ; digit five{94b } ; digit six{94b} ; digit seven{94b } ; digit eight{94b} ; digit nine{94b } .

D) TAB{48a,b } :: bold TAG{A,-}; SIZETY STANDARD{E}.

E) STANDARD{D} :: integral{94e } ; real{94e } ; boolean{94e} ; character{94e } ; format{94e} ; void{94e } ; complex{94e} ; bits{94e } ; bytes{94e} ; string{94e } ; sema{94e} ; file{94e } ; channel{94e} .

F) TAD{48a,b } :: bold TAG{A,-}; DYAD{G} BECOMESETY{J}; DYAD{G} cum NOMAD{I} BECOMESETY{J}.

G) DYAD{F} :: MONAD{H}; NOMAD{I}.

H) MONAD{G,K} :: or{94c } ; and{94c} ; ampersand{94c } ; differs from{94c} ; is at most{94c } ; is at least{94c} ; over{94c } ; percent{94c} ; window{94c } ; floor{94c} ; ceiling{94c } ; plus i times{94c} ; not{94c } ; tilde{94c} ; down{94c } ; up{94c} ; plus{94c } ; minus{94c} ; style TALLY monad{-}.

I) NOMAD{F,G,K} :: is less than{94c } ; is greater than{94c } ; divided by{94c} ; equals{94c } ; times{94c} ; asterisk{94c } .

J) BECOMESETY{F,K} :: cum becomes{94c } ; cum assigns to{94c } ; EMPTY.

K) TAM{48a,b } :: bold TAG{A,-}; MONAD{H} BECOMESETY{J}; MONAD{H} cum NOMAD{I} BECOMESETY{J}.

L) ABC{B} :: a ; b ; c ; d ; e ; f ; g ; h ; i ; j ; k ; l ; m ; n ; o ; p ; q ; r ; s ; t ; u ; v ; w ; x ; y ; z.

M) *DOP :: DYAD{G}; DYAD{G}cum NOMAD{I}. {The metanotion "ABC" is provided, in addition to the metanotion "ALPHA", in order to facilitate the definition of variants of ALGOL 68 {1.1.5.b }.}

9.4.2.2. Representation

a) The representation of each TAG-symbol not given above {9.4.1 } is composed of marks corresponding, in order, to the 'LETTER's or 'DIGIT's contained in that 'TAG'. These marks may be separated by typographical display features {9.4.d }. The mark corresponding to each 'LETTER' ('DIGIT') is the representation of that LETTER-symbol (DIGIT-symbol). {For example, the representation of a letter-x-digit-one-symbol is x1, which may be written x 1. TAG-symbols are used for identifiers and field-selectors.}

b) The representation, if any, of each bold-TAG-symbol is composed of marks corresponding, in order, to the 'LETTER's or 'DIGIT's contained in that 'TAG' {but with no typographical display features in between}. The mark corresponding to each 'LETTER' ('DIGIT') is similar to the mark representing the corresponding LETTER-symbol (DIGIT-symbol), being, in this Report, the corresponding bold faced letter (digit). {Other methods of indicating the similarity which are recognizable without further elucidation are also acceptable, e.g., PERSON, person, PERSON, .person

f and 'person' could all be representations of the bold-letter-p-letter-e-letter-r-letter-s-letter-o-letter-n-symbol.}

However, the representation of a bold-TAG-symbol may not be the same as any representation of any other symbol {; thus there may be a finite number of bold-TAG-symbols which have no representation; e.g., there is no representation for the bold-letter-r-letter-e-letter-a-letter-l-symbol because REAL is a representation of the real-symbol; note that the number of bold-TAG-symbols available is still arbitrarily large}. If, according to the convention used, a given sequence of marks could be either the representation of one bold-TAG-symbol or the concatenation of the representations of two or more other symbols, then it is always to be construed as that one symbol{; the inclusion of a blank can always force the other interpretation; e.g., REFREAL is one symbol, whereas REF REAL must always be two}. {Bold-TAG-symbols are used for mode-indications and for operators.}

c) The representation of each SIZE-SIZETY-STANDARD-symbol is composed of the representation of the corresponding SIZE-symbol, possibly followed by typographical display features, followed by the represention of the corresponding SIZETY-STANDARD-symbol. {For example, the representation of a long-real-symbol is LONG REAL, or perhaps 'long''real' (but not, according to section b above, LONGREAL or 'longreal', for those would be representations of the bold-letter-l-letter-o-letter-n-letter-g-letter-r-letter-e-letter-a-letter-l-symbol). SIZETY-STANDARD-symbols are used for mode-indications.}

d) The representation of each DOP-cum-becomes-symbol (DOP-cum-assigns-to-symbol) is composed of the mark or marks representing the corresponding DOP-symbol followed (without intervening typographical display features) by the marks representing the becomes-symbol (the assigns-to-symbol). {For example, the representation of a plus-cum-becomes-symbol is +:=. DOP-cum-becomes-symbols are used for operators.}

e) The representation of each DYAD-cum-NOMAD-symbol is composed of the mark representing the corresponding DYAD-symbol followed {without intervening typographical display features} by the mark representing the corresponding NOMAD-symbol. {For example, the representation of an over-cum-times-symbol is ÷×. DYAD-cum-NOMAD-symbols are used for operators, but note that NOMAD1-cum-NOMAD2-symbols may be only dyadic-operators.}
 
Next