Identifiers are designed in many ways. The simpliest variant used by traditional processors is an address. It does not have the right properties.
In an extensive system a number of fetures are neaded
These characteristics may make identifiers complex. In order to solve this, one may use several types of identifiers in parallel. Presumably they are used in different spaces.
An exampel of such identifiers are local identifiers that are garbage collected and reused.
An alias concept is neaded - several identifiers may stand for the same. This results in problems when identifiers should be compared. If such identifiers are different it does not mean that the objects they stand for are different.
Identifiers are used to bind to attributes
Identifiers shall normally be used to point to such attributes. Therefore the identifiers nead some mechanism pointing out where the attributes are.
The semantics for such identifiers is studied.