An identification string can be valuable when, for example, several Objects have been stored in a file (using AST_WRITE) and are later retrieved (using AST_READ). Consistent use of the ID attribute allows the retrieved Objects to be identified without depending simply on the order in which they were stored.
This attribute may also be useful during debugging, to distinguish similar Objects when using AST_SHOW to display them.
Unlike most other attributes, the value of the ID attribute is not transferred when an Object is copied. Instead, its value is undefined (and therefore defaults to an empty string) in any copy. However, it is retained in any external representation of an Object produced by the AST_WRITE routine.