When we write a program, we deal with some object field --
a set of objects which are dealt with through the use of functions.
This set subsumes the domains and ranges of all functions,
i.e., the sets of their possible arguments and values.
We shall refer to this set as the basic level, or level 0, of
a hierarchy of objects. Level 1 of this hierarchy is
the Refal machine with function definitions loaded
into it. The interaction between these two levels is the computation
process in which the level 0 objects make up the material,
the ``flesh'' of the process,
while the Refal machine controls the formation and transformation
of this material. We refer to a system
1
of level 1
which exercises control over a collection of systems
0
of level 0 as a metasystem with respect to level 0.
This two-level hierarchy of objects is extended when we create the next level of control which deals with the Refal machine and function definitions as objects. We refer to this step as a metasystem transition.