OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Unboxed objects and polymorphic typing
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A type system for prototyping languages
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Theory and Practice of Object Systems - Special issue: type systems
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Java programming language (2nd ed.)
The Java programming language (2nd ed.)
The design of a class mechanism for Moby
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Featherweight Java: a minimal core calculus for Java and GJ
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
The Definition of Standard ML
The Definition of Standard ML
Type systems for object-oriented programming languages
Type systems for object-oriented programming languages
Integrating Nominal and Structural Subtyping
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Hi-index | 0.00 |
Classes play a dual role in mainstream statically typed object-oriented languages, serving as both object generators and object types. In such languages, inheritance implies subtyping. In contrast, the theoretical language community has viewed this linkage as a mistake and has focused on subtyping relationships determined by the structure of object types, without regard to their underlying implementations. In this paper, we explore why inheritance-based subtyping relations are useful, and we describe two different approaches to extending the MOBY programming language with inheritance-based subtyping relations. In addition, we present a typed object calculus that supports both structural and inheritance-based subtyping, and which provides a formal accounting of our extensions to MOBY.