4. The method of claim 1 wherein translating the high-level intermediate representation further comprises: translating object type casting, including performing type checking, wherein types include virtual table types, type variables, runtime types, or existential types, or any combination thereof.
4. The method of claim 1 wherein translating the high-level intermediate representation further comprises: translating object type casting, including performing type checking, wherein types include virtual table types, type variables, runtime types, or existential types, or any combination thereof. 6. The method of claim 4 wherein translating object type casting comprises: testing if an object can be cast to an interface, including opening the object, and searching an interface table of the object for the interface.