Full abstraction for first-order objects with recursive types and subtyping
Ramesh Viswanathan · 2002
We present a new interpretation of typed object-oriented concepts in terms of well-understood, purely procedural concepts, that preserves observational equivalence. More precisely, we give compositional translations of (a) Ob/sub 1/spl mu//, an object calculus supporting method invocation and functional method update with first-order object types and recursive types, and (b) Ob/sub 1<:/spl mu//, an extension of Ob/sub 1/spl mu// with subtyping, that are fully abstract on closed terms. The target of the translations are a first-order /spl lambda/-calculus with records and recursive types, with and without subtyping. The translation of the calculus with subtyping is subtype-preserving as well.