A Graph-Based Type Representation for Objects

Subtyping and inheritance are two major issues in the research and development of object-oriented languages, which have been traditionally studied along the lines of typed calculi where types are represented as a combination texts and symbols. wo aspects that are closely related to subtyping and inheritance -- method interdependency, and self type and recursive object type -- have either been overlooked or not received sufficient/satisfactory treatments. In this paper, we propose a graph-based nSubtyping and inheritance are two major issues in the research and development of object-oriented languages, which have been traditionally studied along the lines of typed calculi where types are represented as a combination texts and symbols. wo aspects that are closely related to subtyping and inheritance -- method interdependency, and self type and recursive object type -- have either been overlooked or not received sufficient/satisfactory treatments. In this paper, we propose a graph-based notation for object types and investigate the subtyping and inheritance issues under this new framework. Specifically, we (1) identity the problems that have motivated this paper; (2) propose an extension to Abadi-Cardelli's object-calculus towards fixing the problems; (3) present definitions of object type graphs followed by examples; (4) define subtyping and inheritance using object type graphs; (5) show how the problems can be easily resolved under object type graphs; and (6) summarize the contributions of this paper.…