A Typed Intermediate Language for Supporting Interfaces

  • Juan Chen

MSR-TR-2009-35 |

11th Workshop on Formal Techniques for Java-like Programs (FTfJP 2009)

Publication

Object-oriented languages such as Java and C# provide interfaces to support a restricted form of multiple inheritance. Existing low-level typed intermediate languages for object-oriented languages, however, either do not support interfaces or require non-standard interface implementations. This paper describes a typed intermediate language that can express the standard interface implementation strategies based on interface tables (itables). The language can faithfully model itables, the standard itable-based interface method invocation, and interface cast. The type system is sound and the type checking is decidable.