Previous

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:

}

a)
LONG 0

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. Integral denotations

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:

}

a)
4096
b)
4096
c)
4

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. Real denotations

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:

}

a)
0.00123 ·1.23e-3
b)
0.00123
c)
0
d)
.00123
e)
1.23e-3
f)
123 ·1.23
g)
e-3
h)
10 ·e
i)
-3
j)
+ ·-

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;

Case A: The constituent plusminus-option of N contains a minus-symbol:


· V is the product in the sense of numerical analysis of S and 1/10 raised to the power E;

Case B: The direct descendent of that plusminus-option contains a plus-symbol or is empty:


· V is the product in the sense of numerical analysis of S and 10 raised to the power E.

8.1.3. Boolean denotations

8.1.3.1. Syntax

a) boolean denotation{80a } : true{94b} symbol ; false{94b } symbol. {Examples:

}

a)
TRUE ·FALSE

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:

}

a)
"a"
b)
a ·"" ·?
c)
a ·1 ·. ·( ·) ·, ·'040 ·+ ·-

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:

}

a)
EMPTY

8.1.5.2. Semantics

The yield of a void-denotation is empty.

8.2. Bits denotations

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:

}

a)
LONG 2r101
b)
SHORT 16rffff
c)
8r231

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

  1. a descriptor ((1, n)) and
  2. n elements, that selected by (i) being false if 1 <= i <= n - m, and being the (i + m - n)-th truth value of {the sequencer} W otherwise.

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:

}

a)
"abc"
b)
abc

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