PART IV Elaboration-independent constructions
8.0. Denotations {Denotations, e.g., 3.14 or "abc", are constructs whose yields are independent of any action. In other languages, they are sometimes termed "literals" or "constants".}
8.0.1. Syntax a) MOID NEST denoter{5D ,A341i} : pragment{92a } sequence option, MOID denotation{810a,811a,812a,813a,814a,815a,82a,b,c,33a,-}. {The meaning of a denotation is independent of any nest.}
8.1. Plain denotations {Plain-denotations are those of arithmetic values, truth values, characters and the void value, e.g., 1, 3.14, true, "a" and EMPTY.}
8.1.0.1. Syntax A) SIZE :: long ; short.
B) *NUMERAL :: fixed point numeral ; variable point numeral ; floating point numeral.
a) SIZE INTREAL denotation{a,80a } : SIZE symbol {94d } , INTREAL denotation{a,811a,812a} .
b) *plain denotation : PLAIN denotation{a,811a ,812a,813a,814a} ; void denotation{815a } . {Example:
}
8.1.0.2. Semantics The yield W of an INTREAL-denotation is the "intrinsic value" {8.1.1.2 , 8.1.2.2.a, b} of its constituent NUMERAL;
· it is required that W be not greater than the largest value of mode 'INTREAL' that can be distinguished {2.1.3.1.d }.
{An INTREAL-denotation yields an arithmetic value {2.1.3.1.a }, but arithmetic values yielded by different INTREAL-denotations are not necessarily different (e.g., 123.4 and 1.23410+2). }
8.1.1.1. Syntax a) integral denotation{80a ,810a} : fixed point numeral{b}.
b) fixed point numeral{a,812c,d,f,i ,A341h} : digit cypher{c} sequence.
c) digit cypher{b} : DIGIT symbol{94b } . {Examples:
}
8.1.1.2. Semantics The intrinsic value of a fixed-point-numeral N is the integer of which the reference-language form of N {9.3.b } is a decimal representation.
8.1.2.1. Syntax a) real denotation{80a ,810a} : variable point numeral{b}; floating point numeral{e}.
b) variable point numeral{a,f} : integral part{c} option, fractional part{d}.
c) integral part{b} : fixed point numeral{811b } .
d) fractional part{b} : point symbol{94b } , fixed point numeral{811b } .
e) floating point numeral{a} : stagnant part{f}, exponent part{g}.
f) stagnant part{e} : fixed point numeral{811b } ; variable point numeral{b}.
g) exponent part{e} : times ten to the power choice{h}, power of ten{i}.
h) times ten to the power choice{g} : times ten to the power symbol{94b } ; letter e symbol{94a} .
i) power of ten{g} : plusminus{j} option, fixed point numeral{811b } .
j) plusminus{i} : plus symbol{94c } ; minus symbol{94c } . {Examples:
}
8.1.2.2. Semantics a) The intrinsic value V of a variable-point-numeral N is determined as follows:
· let I be the intrinsic value of the fixed-point-numeral of its constituent integral-part, if any, and be 0 otherwise;
· let F be the intrinsic value of the fixed-point-numeral of its fractional-part P divided by 10 as many times as there are digit-cyphers contained in P;
· V is the sum in the sense of numerical analysis of I and F.
b) The intrinsic value V of a floating-point-numeral N is determined as follows:
· let S be the intrinsic value of the NUMERAL of its stagnant-part;
· let E be the intrinsic value of the constituent fixed-point-numeral of its exponent-part;
· V is the product in the
sense of numerical analysis of S and 1/10 raised to the power E;
· V is the product in the
sense of numerical analysis of S and 10 raised to the power E.
8.1.3.1. Syntax a) boolean denotation{80a } : true{94b} symbol ; false{94b } symbol. {Examples:
}
8.1.3.2. Semantics The yield of a boolean-denotation is true (false) if its direct descendent is a true-symbol (false-symbol).
8.1.4. Character denotations {Character-denotations consist of a string-item between two quote-symbols, e.g., "a". To indicate a quote, a quote-image-symbol (represented by "") is used, e.g., """". Since the syntax nowhere allows character- or string-denotations to follow one another, this causes no ambiguity.}
8.1.4.1. Syntax a) character denotation{80a } : quote{94b} symbol, string item{b}, quote symbol{94b } .
b) string item{a,83b } : character glyph{c}; quote image symbol{94b } ; other string item {d}.
c) character glyph{b,92c } : LETTER symbol{94a} ; DIGIT symbol{94b } ; point symbol{94b} ; open symbol{94f } ; close symbol{94f} ; comma symbol{94b } ; space symbol{94b} ; plus symbol{94c } ; minus symbol{94c} .
d) A production rule may be added for the notion 'other string item' {b, for which no hyper-rule is given in this Report} each of whose alternatives is a symbol {1.1.3.1.f } which is different from any terminal production of 'character glyph' {c}and which is not the 'quote symbol'.
{Examples:
}
8.1.4.2. Semantics a) The yield of a character-denotation is the intrinsic value of the symbol descended from its string-item.
b) The intrinsic value of each distinct symbol descended from a string-item is a unique character. {Characters have no inherent meaning, except insofar as some of them are interpreted in particular ways by the transput declarations {10.3 }. The character-glyphs, which include all the characters needed for transput, form a minimum set which all implementations {2.2.2.c } are expected to provide.}
8.1.5. Void denotation {A void-denotation may be used to assign a void value to a UNITED-variable, e.g., UNION([ ]REAL, VOID) u := EMPTY.}
8.1.5.1. Syntax a) void denotation{80a } : empty{94b} symbol. {Example:
}
8.1.5.2. Semantics The yield of a void-denotation is empty.
8.2.1. Syntax A) RADIX :: radix two ; radix four ; radix eight ; radix sixteen.
a) structured with row of boolean field LENGTH LENGTHETY letter aleph mode denotation{a,80a } : long{94d} symbol, structured with row of boolean field LENGTHETY letter aleph mode denotation {a,c}.
b) structured with row of boolean field SHORTH SHORTHETY letter aleph mode denotation{b,80a } : short{94d} symbol, structured with row of boolean field SHORTHETY letter aleph mode denotation{b,c}.
c) structured with row of boolean field letter aleph mode denotation{a,b,80a } : RADIX{d,e,f,g}, letter r symbol{94a } , RADIX digit{h,i,j,k} sequence.
d) radix two{c,A347b } : digit two{94b} symbol.
e) radix four{c,A347b } : digit four{94b} symbol.
f) radix eight{c,A347b } : digit eight{94b} symbol.
g) radix sixteen{c,A347b } : digit one symbol{94b } , digit six symbol{94b} .
h) radix two digit{c,i} : digit zero symbol{94b } ; digit one symbol{94b } .
i) radix four digit{c,j} : radix two digit{h}; digit two symbol{94b } ; digit three symbol{94b} .
j) radix eight digit{c,k} : radix four digit{i}; digit four symbol{94b } ; digit five symbol{94b} ; digit six symbol{94b } ; digit seven symbol{94b} .
k) radix sixteen digit{c} : radix eight digit{j}; digit eight symbol{94b } ; digit nine symbol{94b} ; letter a symbol{94a } ; letter b symbol{94a} ; letter c symbol{94a } ; letter d symbol{94a} ; letter e symbol{94a } ; letter f symbol{94a} .
l) *bits denotation : BITS denotation{a,b,c}.
{BITS :: structured with row of boolean field SITHETY letter aleph mode.}
m) *radix digit : RADIX digit{h,i,j,k}. {Examples:
}
8.2.2. Semantics a) The yield V of a bits-denotation D is determined as follows:
· let W be the intrinsic boolean value {b}of its constituent RADIX-digit-sequence:
· let m be the length of W;
· let n be the value of {l} bits width {10.2.1.j }, where {l} stands for as many times long (short) as there are long-symbols (short-symbols) contained in D;
· it is required that m be not greater than n:
· V is a structured value {whose mode is some 'BITS'} whose only field is a multiple value having
b) The intrinsic boolean value of a RADIX-digit-sequence S is the shortest sequence of truth values which, regarded as a binary number (true corresponding to 1 and false to 0), is the same as the intrinsic integral value {c}of S.
c) The intrinsic integral value of a radix-two- (radix-four-, radix-eight-, radix-sixteen-) -digit-sequence S is the integer of which the reference-language form of S {9.3.b } is a binary, (quaternary, octal, hexadecimal) representation, where the representations a, b, c, d, e and f, considered as digits, have values 10, 11, 12, 13, 14 and 15 respectively.
8.3. String denotations {String-denotations are a convenient way of specifying "strings", i.e., multiple values of mode 'row of character'.
Example:
string message := "all is well" }
8.3.1. Syntax a) row of character denotation{80a } : quote{94b } symbol, string{b} option, quote symbol{94b } .
b) string{a} : string item{814b } , string item{814b } sequence.
c) *string denotation : row of character denotation{a}. {Examples:
}
8.3.2. Semantics The yield of a string-denotation D is a multiple value V determined as follows:
· let n be the number of string-items contained in D;
· the descriptor of V is ((1, n));
· for i = 1, ..., n, the element of V with index (i) is the intrinsic value {8.1.4.2.b } of the i-th constituent symbol of the string of D.
{"a" is a character-denotation, not a string-denotation.
However, in all strong positions, e.g., STRING s := "a", it can
be rowed to a multiple value {6.6
}. Elsewhere, where
a multiple value is required, a cast {5.5.1.1.a
} may
be used, e.g., UNION(CHAR, STRING) cs := STRING("a").}
Next