A Typed Intermediate Language for Compiling Multiple Inheritance

Juan Chen

Abstract

Type-preserving compilation improves software reliability by generating code that can be verified independently of the compiler. Practical type-preserving compilation does not exist for languages with multiple inheritance. This paper presents EMI, the first typed intermediate language to support practical compilation of a programming language with fully general multiple inheritance. The paper demonstrates the practicality of EMI by showing that EMI can be used to faithfully model standard implementation strategies of multiple inheritance for C++, the most widely-used programming language with general multiple inheritance. The paper describes syntax, semantics, and properties of EMI as well as a type-preserving translation from a source language.

Details

Publication typeInproceedings
Published inACM Symposium on Principles of Programming Languages (POPL 07)
InstitutionMicrosoft Research
PublisherAssociation for Computing Machinery, Inc.
> Publications > A Typed Intermediate Language for Compiling Multiple Inheritance