The present invention relates to systems and methods that facilitate
dynamic programming language execution in a managed code environment. A
class component is provided that declares an inheritance hierarchy for
one or more tagged values associated with a dynamic programming language.
During execution of the tagged values, a rules component mitigates
user-defined types from inheriting or deriving properties from the tagged
values in order to support a type safe runtime environment. A bifurcated
class tree is provided that defines non-tagged type elements on one side
of the tree and tagged type element values on an alternate branch of the
tree. The rules component analyzes runtime extensions that help to
prevent data from one component of the tree deriving or inheriting
properties from another component of the tree. The runtime extensions
include such aspects as cast class extensions, test class extensions, and
conversion class extensions for converting data types from one class
subtype to another.