1. A non-transitory computer-readable medium storing computer executable instructions, the instructions comprising: one or more instructions that, when executed by a processor, cause the processor to: provide a handle base class; define one or more handle subclasses, where the one or more handle subclasses have a class hierarchy that includes the handle base class; construct handle objects from the one or more handle subclasses; use the handle objects, where the handle objects are used exclusively through references to the handle objects; define one or more non-handle base classes and one or more non-handle subclasses, where the one or more non-handle subclasses have a class hierarchy that includes at least one of the one or more non-handle base classes and does not include the handle base class; construct non-handle objects from the one or more non-handle subclasses; use the non-handle objects, where the non-handle objects are used exclusively by value; store the handle objects and the non-handle objects in a memory coupled to the processor; provide a first syntax for constructing both the handle objects and the non-handle objects; and provide a second syntax for using both the handle objects and the non-handle objects.
1. A non-transitory computer-readable medium storing computer executable instructions, the instructions comprising: one or more instructions that, when executed by a processor, cause the processor to: provide a handle base class; define one or more handle subclasses, where the one or more handle subclasses have a class hierarchy that includes the handle base class; construct handle objects from the one or more handle subclasses; use the handle objects, where the handle objects are used exclusively through references to the handle objects; define one or more non-handle base classes and one or more non-handle subclasses, where the one or more non-handle subclasses have a class hierarchy that includes at least one of the one or more non-handle base classes and does not include the handle base class; construct non-handle objects from the one or more non-handle subclasses; use the non-handle objects, where the non-handle objects are used exclusively by value; store the handle objects and the non-handle objects in a memory coupled to the processor; provide a first syntax for constructing both the handle objects and the non-handle objects; and provide a second syntax for using both the handle objects and the non-handle objects. 4. The medium of claim 1 , wherein the instructions further comprise: one or more instructions that, when executed by the processor, cause the processor to: receive a definition of at least one of the one or more non-handle sub-classes; and instantiate a first non-handle object corresponding to an instance of the at least one of the one or more non-handle sub-classes.