614 Appendix
() (hyphennames). All simplenames function identically: they obtain their designations through assignment (:=) or abbreviation (/). They may thus be definite or indefinite, corresponding to e expressions they name. Any simplename may be used if it has not already been used for a different expression or is not excluded by numbername or by a previously defined xname (see below).
EXAMPLE5 AB3 SAM Baker Instruction_ set inputregister 13B
ABBREVIATION If there is no chance for ambiguity, phrasenames may be written with a space instead of the spaceconcatenation mark (_ ).
EXAMPLE skip condition = skip_ condition
ABBREVIATION If the hyphenname xa is used within the scope of the definition of the entity x, then the name may be abbreviated to just a.
COMMENT This permits the use of the same name in local contexts, where the name of the context (the expression being defined) serves to disambiguate the name where needed.
EXAMPLE datatype : = .... datatypecomponent: datatype ...)
datatype : = .... component: datatype ...) alternative form
10.7 compoundname := S.v.v...
where S is an indefinite simplename and the v are simplenames.
The compoundname has the same designation as
S(v ;v...)
where each of the v's defines a parameter whose attribute may be dropped because the v is selfidentifying. Thus a compoundname is an abbreviation technique that constructs a name for an entity by conjoining a series of modifying attribute values to the type of the entity.
EXAMPLE Memory.primary is an abbreviation for
Memory(function: primary)
ABBREVIATION An intervening period may be dropped if no ambiguity results.
EXAMPLE Mp is the same as M.p
Mprimary is the same as M.primary though poor taste
COMMENT Compound names have the desirable feature that the leading symbol (leftmost) gives the kind of entity being designated, e.g., M.primary is a kind of memory.
10.8 numbername. Defined in GC 11.
10.9 xname. The names to be used in defining an immediate instance of the entity.. If x is any entity and y is any nameexpression, such that
x := (xname: y;...)
then any z which is an instance of x,
z : = x( . . . . .)
must be chosen from the nameexpressions defined by y. This holds only for a single level. If w : = z(. . .), then w is not constrained as to the name used.
EXAMPLE component : = (componentname: capitalletter)
M : = component (...) is legal;
SAM : = component(...) is not legal;
SAM := M(...) is legal.
11. Numbers
11.1 number : = numbername÷
numbervariable÷
number ¯
base÷
arithmeticexpression ÷ countexpression
numbername : = integer ÷
decimal
integername / integer : = *sign digitstring
recall * means optional
sign := +÷

+ integername / + integer : = digitstring includes 0

integername / 
integer : = 
+ integer
decimalname / decimal : = integer . digitstring
base : = + integer
arithmeticexpression : = unaryarithmeticoperation number ÷
number binaryarithmeticoperation number÷
number naryarithmeticoperation number...÷
arithmeticfunction(numberlist)
unaryarithmeticoperation : = 
÷
+
binaryarithmeticoperation : = 
÷
/ ÷
exponentiation / exp /
÷
modulo / mod
naryarithmeticoperation : = +÷
X
arithmeticfunctionoperation : = log ¯
2÷
absolutevalue / abs÷
entier ÷
maximum / max÷
minimum / min ÷
average / avg÷
sum÷
product / prod
countexpression: = number(xset) I number(xlist)
Numbers are defined in the standard way, starting with numbernames for integers (1324 or 14) and decimals (13.23). If the base of the number