the Store will give a meaning to each identifier. Each
identifier can represent either a normal variable or an
object:
Store = Nat + Object + ErrValue
Furthermore, in order to build the objects when they are created
we need to maintain a description of the class hierarchy. Since the
hierarchy is in this case largely statical (i.e., class structure
is not modified after the creation of the class), we can use the
following approach:
Hierarchy = Id

(
Class +
ErrValue)
where the algebra Class is defined as
Class = Id

(
ErrValue+
UndefAttr)
The intuition is that each class is described by a function which maps
the attributes of the class to ErrValue and the identifiers that
do not correspond to any attribute of the class to UndefAttr.