Abstract
We present a graph-basedmodel of a generic type system for an OO language. The type system supports the features of recursive types, generics and interfaces, which are commonly found in modern OO languages such as Java. In the classical graph theory, we define type graphs, instantiation graphs and conjunction graphs that naturally illustrate the relations among types, generics and interfaces within complex OO programs. The model employs a combination of nominal and anonymous nodes to represent respectively types that are identified by names and structures, and defines graph-based relations and operations on types including equivalence, subtyping, conjunction and instantiation. Algorithms based on the graph structures are designed for the implementation of the type system. We believe that this type system is important for the development of a graph-based logical foundation of a formal method for verification of and reasoning about OO programs.
Original language | English |
---|---|
Pages (from-to) | 109-134 |
Number of pages | 26 |
Journal | Frontiers of Computer Science |
Volume | 7 |
Issue number | 1 |
DOIs | |
Publication status | Published - Feb 2013 |
Keywords
- OO programs
- generics
- recursive types
- type graphs
- type systems