Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
An introduction to Trellis/Owl
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Interfaces for strongly-typed object-oriented programming
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Programming linguistics
The C++ programming language (2nd ed.)
The C++ programming language (2nd ed.)
Building an object-oriented database system: the story of 02
Building an object-oriented database system: the story of 02
Interfaces and specifications for the Smalltalk-80 collection classes
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Covariance and contravariance: conflict without a cause
ACM Transactions on Programming Languages and Systems (TOPLAS)
Extensibility in the Starburst database system
OODS '86 Proceedings on the 1986 international workshop on Object-oriented database systems
Hi-index | 0.00 |
C++ uses `class' as the basis of `subtype-polymorphism' and `inheritance', but it has been pointed out that the overloading of `class' limits the expressiveness and makes its type system inflexible. This made C++ and some other object-oriented languages to separate a class into two modules -- an interface and an implementation. But, there seems to be no leading C++ model for separating interface lattice from implementation lattice. Moreover none of proposed models describe the result of the separation in a formal way. As a result it is hard to understand what the type space would be like after the separation. This paper presents a formal model for the separation of interface and implementation in C++, which explains the properties of the resulting type space after the separation.