A simple typed intermediate language for object - oriented languages

Juan Chen and David Tarditi

Abstract

Traditional class and object encodings are difficult to use in practical type-preserving compilers because of the complexity of the encodings. We propose a simple typed intermediate language for compiling object-oriented languages and prove its soundness. The key ideas are to preserve lightweight notions of classes and objects instead of compiling them away and to separate name-based subclassing from structure-based subtyping. The language can express standard implementation techniques for both dynamic dispatch and runtime type tests. It has decidable type checking even with subtyping between quantified types with different bounds. Because of its simplicity, the language is a more suitable starting point for a practical type-preserving compiler than traditional encoding techniques.

Details

Publication typeInproceedings
Published inACM Symposium on Principles of Programming Languages (POPL 05)
Pages12
InstitutionMicrosoft Research
PublisherAssociation for Computing Machinery, Inc.
> Publications > A simple typed intermediate language for object - oriented languages