y; Isaac Newton Institute for Mathematical Sciences
user correction - Legacy Corrections
We present an interpretation of typed object-oriented concepts in terms of well-understood, purely procedural concepts. More precisely, we give a compositional subtypepreserving translation of a basic object calculus supporting method invocation, functional method update, and subtyping, into the polymorphic -calculus with recursive types and subtyping. The translation techniques apply also to an imperative version of the object calculus which includes inplace method update and object cloning. Finally, the translation easily extends to "Self types" and other interesting object-oriented constructs. 1 Introduction Object-oriented programming languages have introduced numerous ideas, structures, and techniques. Although these contributions are not always conceptually clear (or even sound), they are often original and useful. One of the most basic contributions is the notion of self; the operations associated with an object (its methods) can refer to the object as self, and invoke other op...