previous | contents | next

614 Appendix

(-) (hyphen-names). All simple-names function identically: they obtain their designations through assignment (:=) or abbreviation (/). They may thus be definite or indefinite, corresponding to e expressions they name. Any simple-name may be used if it has not already been used for a different expression or is not excluded by number-name or by a previously defined x-name (see below).

EXAMPLE5 AB3 SAM Baker Instruction_ set input-register 13-B

ABBREVIATION If there is no chance for ambiguity, phrase-names may be written with a space instead of the space-concatenation mark (_ ).

EXAMPLE skip condition = skip_ condition

ABBREVIATION If the hyphen-name x-a 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 data-type : = .... data-type-component: data-type ...)

data-type : = .... component: data-type ...) alternative form

10.7 compound-name := S.v.v...

where S is an indefinite simple-name and the v are simple-names.

The compound-name 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 self-identifying. Thus a compound-name 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 number-name. Defined in GC 11.

10.9 x-name. The names to be used in defining an immediate instance of the entity.. If x is any entity and y is any name-expression, such that

x := (x-name: y;...)

then any z which is an instance of x,

z : = x( . . . . .)

must be chosen from the name-expressions 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 : = (component-name: capital-letter)

M : = component (...) is legal;

SAM : = component(...) is not legal;

SAM := M(...) is legal.

11. Numbers

11.1 number : = number-name÷ number-variable÷ number ¯ base÷

arithmetic-expression ÷ count-expression

number-name : = integer ÷ decimal
integer-name / integer : = *sign digit-string

recall * means optional

sign := +÷ -
+ integer-name / + integer : = digit-string includes 0
integer-name / - integer : = - + integer
decimal-name / decimal : = integer . digit-string
base : = + integer

arithmetic-expression : = unary-arithmetic-operation number ÷

number binary-arithmetic-operation number÷

number n-ary-arithmetic-operation number...÷


unary-arithmetic-operation : = - ÷ +
binary-arithmetic-operation : = - ÷ / ÷ exponentiation / exp / ­ ÷ modulo / mod
n-ary-arithmetic-operation : = +÷ X
arithmetic-function-operation : = log ¯ 2÷ absolute-value / abs÷ entier ÷ maximum / max÷ minimum / min ÷ average / avg÷ sum÷ product / prod
count-expression: = number(x-set) I number(x-list)

Numbers are defined in the standard way, starting with number-names for integers (1324 or -14) and decimals (13.23). If the base of the number

previous | contents | next