A syntactic approach to type soundness
Information and Computation
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
Types and programming languages
Types and programming languages
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
A Theory of Objects
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
A graph transformation approach to software architecture reconfiguration
Science of Computer Programming - Special issue on applications of graph transformations (GRATRA 2000)
From Classes to Objects via Subtyping
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
A Trace Model for Pointers and Objects
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
On Variance-Based Subtyping for Parametric Types
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Confluence of Typed Attributed Graph Transformation Systems
ICGT '02 Proceedings of the First International Conference on Graph Transformation
Numbering matters: first-order canonical forms for second-order recursive types
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
A machine-checked model for a Java-like language, virtual machine, and compiler
ACM Transactions on Programming Languages and Systems (TOPLAS)
A graphical presentation of MLF types with a linear-time unification algorithm
TLDI '07 Proceedings of the 2007 ACM SIGPLAN international workshop on Types in languages design and implementation
rCOS: a refinement calculus of object systems
Theoretical Computer Science - Components and objects
Formal Verification of Object-Oriented Graph Grammars Specifications
Electronic Notes in Theoretical Computer Science (ENTCS)
Graph transformations for object-oriented refinement
Formal Aspects of Computing
A Graph-Based Operational Semantics of OO Programs
ICFEM '09 Proceedings of the 11th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
rCOS: a formal model-driven engineering method for component-based software
Frontiers of Computer Science in China
ICTAC'06 Proceedings of the Third international conference on Theoretical Aspects of Computing
Defining object-oriented execution semantics using graph transformations
FMOODS'06 Proceedings of the 8th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Fundamenta Informaticae - SPECIAL ISSUE ON ICGT 2004
Hi-index | 0.00 |
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.