9. A software execution process supporting dynamic behavior of a statically compiled computer program in a reduced runtime support environment, the process comprising the steps of: running at least a portion of the computer program in the reduced runtime support environment, the reduced size runtime functioning as a replacement for a larger runtime R, the reduced size runtime occupying less nonvolatile storage space than the larger runtime R as a result of containing less metadata than the larger runtime R, wherein metadata includes one or more of the following: a type name, a type member name, a type layout for garbage collection purposes, or a type member layout for garbage collection purposes; and utilizing at least one of the following dynamic support structures: a mapping between metadata and at least one native code runtime artifact; a mapping between runtime type descriptions, each runtime type description including at least one of the following: a list of implemented interfaces for a type which is in an execution scope of the compiled computer program, or a garbage collection layout for a type which is in an execution scope of the compiled computer program; or at least one piece of code which upon execution supports a reflection invocation of an artifact of the compiled computer program.
12. The process of claim 9 , wherein utilizing a mapping between runtime type descriptions comprises utilizing at least one of the following: a mapping between a generic type instance, a runtime type definition description, and a runtime type argument description; a mapping between a runtime array description, and a runtime array element description; or a mapping between a location of native code for a static type initialization in the statically compiled computer program, and a runtime type description.