We study the interplay between inner classes and virtual types. The combination of these two concepts can be observed in object-oriented languages like BETA or Scala. This study is based on a calculus of classes and objects composed of a very limited number of constructs. For example the calculus has neither methods nor class constructors. Instead it has a more general concept of abstract inheritance which lets a class extend an arbitrary object. Thanks to an interpretation of terms as types the calculus also unifies type fields and term fields. The main contribution of this work is to show that typing virtual types in the presence of inner classes requires some kind of alias analysis and to formalize this mechanism with a simple calculus.
Inner Classes and Virtual Types. Philippe Altherr, Vincent Cremet. Submitted to The European Conference on Object-Oriented Programming (Ecoop 2005). Last modified the 25th of December (2005).
mainthat can be called in the interpreter.