C++ uses inheritance as a substitute for subtype polymorphism. We give examples where this makes the type system too inflexible. We then describe a conservative language extension that allows us to define an abstract type hierarchy independent of any implementation hierarchies, to retroactively abstract over an implementation, and to decouple subtyping from inheritance. This extension gives the user more of the flexibility of dynamic typing while retaining the efficiency and security of static typing. With default implementations and views we provide flexible mechanisms for implementing an abstract type by different concrete class types. We first show how our language extension can be implemented in a preprocessor to a C++ compiler, and the...
We present a static type system for object-oriented languages which strives to provide static typech...
Flexibility of programming and efficiency of program execution are two important features of a progr...
The work described in this report was motivated by a desire to understand the implementation of inhe...
c++ uscs inheritance as a substitute for subtype polymorphism. We give examples where this makes tbe...
We outline the design and detail the implementation of a language extension for abstracting types an...
Our objective is to understand the notion of type in programming languages, present a model of typed...
Our objective is to understand the notion of type in programming languages, present a model of typed...
Design patterns are distilled from many real systems to catalog common programming practice. We have...
Intensional polymorphism, the ability to dispatch to different routines based on types at run time...
Intensional polymorphism, the ability to dispatch to dierent routines based on types at run time, en...
Intensional polymorphism, the ability to dispatch to different routines based on types at run time, ...
Traditional techniques for implementing polymorphism use auniversal representation for objects of un...
C++ is a multi-paradigm language. The two main paradigms in C++ are object-oriented programming and ...
Generic object-oriented programming languages combine parametric polymorphism and nominal subtype po...
There exists an identifiable programming style based on the widespread use of type information handl...
We present a static type system for object-oriented languages which strives to provide static typech...
Flexibility of programming and efficiency of program execution are two important features of a progr...
The work described in this report was motivated by a desire to understand the implementation of inhe...
c++ uscs inheritance as a substitute for subtype polymorphism. We give examples where this makes tbe...
We outline the design and detail the implementation of a language extension for abstracting types an...
Our objective is to understand the notion of type in programming languages, present a model of typed...
Our objective is to understand the notion of type in programming languages, present a model of typed...
Design patterns are distilled from many real systems to catalog common programming practice. We have...
Intensional polymorphism, the ability to dispatch to different routines based on types at run time...
Intensional polymorphism, the ability to dispatch to dierent routines based on types at run time, en...
Intensional polymorphism, the ability to dispatch to different routines based on types at run time, ...
Traditional techniques for implementing polymorphism use auniversal representation for objects of un...
C++ is a multi-paradigm language. The two main paradigms in C++ are object-oriented programming and ...
Generic object-oriented programming languages combine parametric polymorphism and nominal subtype po...
There exists an identifiable programming style based on the widespread use of type information handl...
We present a static type system for object-oriented languages which strives to provide static typech...
Flexibility of programming and efficiency of program execution are two important features of a progr...
The work described in this report was motivated by a desire to understand the implementation of inhe...