Abstract. We describe a low-level calculus, called ink (pronounced "links"), designed to serve as an intermediate representation in compilers for class-based objectoriented languages. The calculus fills two roles. First, its primitives can express a wide range of class-based object-oriented language features, such as class construction and various forms of method dispatch. Second, it allows the compiler to specify class linking directly in ink. In particular, the calculus can model the class systems of MOBY [FR99a], OCAML [RV98,Ler98], and LOOM [BFP97], where subclasses may be derived from unknown base classes, or just-in-time linking schemes like that of JAVA [AG98], where an application loads and links classes dynamically.
Kathleen Fisher, John H. Reppy, Jon G. Riecke