1995
DOI: 10.1002/spe.4380250803
|View full text |Cite
|
Sign up to set email alerts
|

Signatures: A language extension for improving type abstraction and subtype polymorphism in C++

Abstract: Abstractc++ uscs inheritance as a substitute for subtype polymorphism. We give examples where this makes tbe type system too inflexible. We then describe a conservative language extension 1.1111.1 allows a programmer 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 … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
10
0

Year Published

1997
1997
2006
2006

Publication Types

Select...
5
2
1

Relationship

1
7

Authors

Journals

citations
Cited by 20 publications
(10 citation statements)
references
References 21 publications
0
10
0
Order By: Relevance
“…We took the term type abstraction from [3], but the concept is also known as data abstraction, as described by Liskov in [13]. The latter paper is also the reason why we distinguish type abstraction from type hierarchies: the paper argues quite convincingly that the "implements" relation should be distinguished from the "is a" relation.…”
Section: Type Abstractionmentioning
confidence: 96%
“…We took the term type abstraction from [3], but the concept is also known as data abstraction, as described by Liskov in [13]. The latter paper is also the reason why we distinguish type abstraction from type hierarchies: the paper argues quite convincingly that the "implements" relation should be distinguished from the "is a" relation.…”
Section: Type Abstractionmentioning
confidence: 96%
“…Of well-known object-oriented languages, Cecil [37] supports retroactive subtyping, and the feature has been suggested for Java as well [4]. Also, mechanisms for specifying structural subtyping relations have been proposed for C++ [5] and for Java [33].…”
Section: Related Workmentioning
confidence: 99%
“…A problem with a single class hierarchy defining both abstract types and their implementations is that as the type hierarchy becomes more complex, it might become necessary to duplicate code. We use an example from computer algebra [3,2] to demonstrate this problem. Consider the abstract type GeneralHatrix with subtypes BegativeDefiniteHatrix and Orthogonal-Matrix.…”
Section: Separation Of Type and Class Hierarchiesmentioning
confidence: 99%
“…To see where this type of solution breaks down, consider adding another type, S'tack, with member functions push and pop. With signatures it is simple to define a Stack signature and whenever assigning a DoublyLinkedList use a view [2] to rename enqueueBead to push and dequeueHead to pop.…”
Section: Signatures To Implement Conflicting Type and Class Hierarchiesmentioning
confidence: 99%
See 1 more Smart Citation