2009
DOI: 10.21236/ada512432
|View full text |Cite
|
Sign up to set email alerts
|

CZ: Multimethods and Multiple Inheritance Without Diamonds

Abstract: Multiple inheritance has long been plagued with the "diamond" inheritance problem, leading to solutions that restrict expressiveness, such as mixins and traits. Instead, we address the diamond problem directly, considering two difficulties it causes: ensuring a correct semantics for object initializers, and typechecking multiple dispatch in a modular fashion-the latter problem arising even with multiple interface inheritance. We show that previous solutions to these problems are either unsatisfactory or cumber… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
22
0

Year Published

2011
2011
2020
2020

Publication Types

Select...
4
2
1

Relationship

1
6

Authors

Journals

citations
Cited by 15 publications
(22 citation statements)
references
References 35 publications
(63 reference statements)
0
22
0
Order By: Relevance
“…This can be illustrated by the notion of multi-inheritance. There is a heated dispute on whether or not it should be introduced in object-oriented languages [31][32][33][34]. Critics resort to two main arguments claiming that,¯rstly, multiinheritance is not absolutely necessary as the same objective can be accomplished otherwise (minimalism), and secondly, that it is a dangerous programming technique (overprotectiveness).…”
Section: Discussionmentioning
confidence: 99%
“…This can be illustrated by the notion of multi-inheritance. There is a heated dispute on whether or not it should be introduced in object-oriented languages [31][32][33][34]. Critics resort to two main arguments claiming that,¯rstly, multiinheritance is not absolutely necessary as the same objective can be accomplished otherwise (minimalism), and secondly, that it is a dangerous programming technique (overprotectiveness).…”
Section: Discussionmentioning
confidence: 99%
“…A specific version of the issue of multiple inheritance is a problem that has been called 'the fork-join problem' (Sakkinen 1989), 'the diamond problem' (Malayeri and Aldrich 2009), and even 'the diamond of doom', 'the diamond of dread' and 'the diamond of death' (by various users of the online programming platform Stack Overflow). This problem is illustrated by the graph in Fig.…”
Section: The Issue Of Multiple Inheritancementioning
confidence: 99%
“…The CZ proposal [40] addresses the diamond problem directly, without restricting the expressive power of multiple inheritance, by eliminating multiple inheritance implementation hierarchies in favour of multiple inheritance subtyping hierarchies. However, this approach forces the programmer to have almost twice as many classes as within a traditional hierarchy, moreover it does not solve the problems about the modularity of constructors.…”
Section: Code Reuse Mechanismsmentioning
confidence: 99%