previous | contents | next

612 Appendix

COMMENT The remark made in point 2 above on "inferable" holds here as well.

7.3 entity : = attribute(entity)
An entity can be designated as the value of an attribute of some other entity.

COMMENT This is simply standard functional notation.

EXAMPLE Pc(speed: speed(Mp))

7.4 entity = A(parameter-set)
An entity can be defined as having all the parameters of the indefinite expression A, further specialized, modified, or augmented by the given parameter-set.

COMMENT This permits one entity to be defined as an instance or further specification of another "general" entity, allowing the equivalent of subroutining in building up a system of definitions. It also permits one entity to be defined as like another except in certain specified respects.

EXAMPLE Let M = Component(size: + integer word; color: blue)

M(size: 100 ~ 1000 word) further specification

M(size: 100; o-rate: 10 s/word) further specification, if Component defines o-rate

M(color: red) definition by exception
M(size: 100; weight: 300 lb) definition by augmentation

7.5 entity : = entity-set÷ entity-list ÷ labeled-entity-set ÷ labeled-entity-list

labeled-entity : = label: entity

label : = simple-name

An entity can be a set or a list of entities. It is possible to affix labels to the entities of a set or list to make referencing easier.
EXAMPLE C(M: Mp, Ms, M.ps) declares the memory of C

T(co-components: to: L.1, from: L.2) to and from are labels

7.6 entity : = + integer entity

An abbreviation for a list of a specified number (the + integer) of entities, as specified in the entity following the + integer. If the specifying entity is an indefinite expression, then each of the entities is independent.
EXAMPLE 12 M(tape) where each M(tape) may have different further specifications.

7.7 entity : = number÷ quantity÷ predicate÷ entity-name

Each of these possibilities is taken up in later sections.

8. Attributes

8.1 The following gives the possibilities for attributes. It also provides for the automatic definition of certain attributes. Throughout. let x be the entity whose attribute is being defined and let V be the domain of values of the attribute.

8.2 attribute : = simple-name
Simple-names provide freely definable attributes, without restriction on use.

EXAMPLE C(user_ efficiency: fraction) an attribute called user_ efficiency can simply be defined and given any domain desired.

8.3 attribute: = label

if x is a labeled-list or labeled-set

The labels of a labeled-list or labeled-set automatically become attributes.

8.4 attribute : = V
Often there exists no separate name for an attribute other than the set of values it can take on (V), which already has an appropriate expression in the language.

EXAMPLE C(Mp: M(1000 w; 32 b/w)) where Mp serves as the attribute, being also the domain.

8.5 attribute: = attribute: attribute...
A sequence of attributes, interpreted as making an iterated sequence of selections, can serve as a single attribute. The first (leftmost) attribute determines a value of x; the next attribute determines a value in the parameter set of this value, and so on through the sequence.
In symbols:

a: b: ... q(x) = ....... b(a(x))..

EXAMPLE X : = C(Mp(size: 1000 w))

size: Mp(X) = 1000 w

8.6 attribute : = a

if q: p: ... b: a is an attribute of x and there is only one value of x to any depth with attribute a

The front end of an attribute sequence can be dropped if the remainder uniquely identifies the value; that is, if there is only one occurrence of a within x and its values.

EXAMPLE X : = C(Pc, Mp, Ms)

add-time(X) is defined, since only Pc has an add-time.

size(X) is not defined, since both Mp and Ms have size as an attribute.

8.7 attribute : = attribute-list
The value is a value-list that corresponds one-to-one with the attributes of

previous | contents | next