On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Smalltalk: subclassing subtyping is-a
Journal of Object-Oriented Programming
Eiffel: the language
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Signatures: a language extension for improving type abstraction and subtype polymorphism in C++
Software—Practice & Experience
On the criteria to be used in decomposing systems into modules
Communications of the ACM
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
The Java Programming Language
ICSR-6 Proceedings of the 6th International Conerence on Software Reuse: Advances in Software Reusability
Attribute Types and Bracket Implementations
TOOLS '97 Proceedings of the Technology of Object-Oriented Languages and Systems - Tools-25
Genja - A New Proposal for Parameterised Types in Java
TOOLS '97 Proceedings of the Technology of Object-Oriented Languages and Systems - Tools-25
TOOLS '97 Proceedings of the Technology of Object-Oriented Languages and Systems-Tools - 24
Qualifying Types Illustrated by Synchronisation Examples
NODe '02 Revised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World
Hi-index | 0.00 |
Unlike most object oriented programming languages Timor, which has been designed to support component development, replaces the class construct with separate constructs for defining types and their implementations (which are not types). It also distinguishes between behaviourally conforming subtyping and the inclusion of behaviourally deviant interfaces in the definition of derived types. The separation of types and implementations simplifies a separation of subtyping and subclassing, facilitating the re-use of implementations of one type to implement other, unrelated types. A further technique allows a type to be mapped onto an unrelated type with different method names, such that the latter's implementations can also be re-used to implement the former. The paper concludes by outlining a substantial example based on the Timor Collection Library.