File Download
  Links for fulltext
     (May Require Subscription)
Supplementary

Conference Paper: FHJ: A Formal Model for Hierarchical Dispatching and Overriding

TitleFHJ: A Formal Model for Hierarchical Dispatching and Overriding
Authors
Keywordsmultiple inheritance
hierarchical dispatching
OOP
language design
Issue Date2018
PublisherSchloss Dagstuhl - Leibniz-Zentrum fuer Informatik GmbH. The Journal's web site is located at hhttp://www.dagstuhl.de/publikationen/lipics/
Citation
The 32nd European Conference on Object-Oriented Programming (ECOOP 2018), Amsterdam, The Netherlands, 16-21 July 2018. In Millstein, T (ed.). LIPICS - Leibniz International Proceedings in Informatics, 2018, v. 109, article no. 20, p. 20:1-20:30 How to Cite?
AbstractMultiple inheritance is a valuable feature for Object-Oriented Programming. However, it is also tricky to get right, as illustrated by the extensive literature on the topic. A key issue is the ambiguity arising from inheriting multiple parents, which can have conflicting methods. Numerous existing work provides solutions for conflicts which arise from diamond inheritance: i.e. conflicts that arise from implementations sharing a common ancestor. However, most mechanisms are inadequate to deal with unintentional method conflicts: conflicts which arise from two unrelated methods that happen to share the same name and signature. This paper presents a new model called Featherweight Hierarchical Java (FHJ) that deals with unintentional method conflicts. In our new model, which is partly inspired by C++, conflicting methods arising from unrelated methods can coexist in the same class, and hierarchical dispatching supports unambiguous lookups in the presence of such conflicting methods. To avoid ambiguity, hierarchical information is employed in method dispatching, which uses a combination of static and dynamic type information to choose the implementation of a method at run-time. Furthermore, unlike all existing inheritance models, our model supports hierarchical method overriding: that is, methods can be independently overridden along the multiple inheritance hierarchy. We give illustrative examples of our language and features and formalize FHJ as a minimal Featherweight-Java style calculus.
Persistent Identifierhttp://hdl.handle.net/10722/301426
ISSN
2023 SCImago Journal Rankings: 0.796

 

DC FieldValueLanguage
dc.contributor.authorWang, Y-
dc.contributor.authorZhang, H-
dc.contributor.authorDos Santos Oliveira, BC-
dc.contributor.authorServetto, M-
dc.date.accessioned2021-07-27T08:10:54Z-
dc.date.available2021-07-27T08:10:54Z-
dc.date.issued2018-
dc.identifier.citationThe 32nd European Conference on Object-Oriented Programming (ECOOP 2018), Amsterdam, The Netherlands, 16-21 July 2018. In Millstein, T (ed.). LIPICS - Leibniz International Proceedings in Informatics, 2018, v. 109, article no. 20, p. 20:1-20:30-
dc.identifier.issn1868-8969-
dc.identifier.urihttp://hdl.handle.net/10722/301426-
dc.description.abstractMultiple inheritance is a valuable feature for Object-Oriented Programming. However, it is also tricky to get right, as illustrated by the extensive literature on the topic. A key issue is the ambiguity arising from inheriting multiple parents, which can have conflicting methods. Numerous existing work provides solutions for conflicts which arise from diamond inheritance: i.e. conflicts that arise from implementations sharing a common ancestor. However, most mechanisms are inadequate to deal with unintentional method conflicts: conflicts which arise from two unrelated methods that happen to share the same name and signature. This paper presents a new model called Featherweight Hierarchical Java (FHJ) that deals with unintentional method conflicts. In our new model, which is partly inspired by C++, conflicting methods arising from unrelated methods can coexist in the same class, and hierarchical dispatching supports unambiguous lookups in the presence of such conflicting methods. To avoid ambiguity, hierarchical information is employed in method dispatching, which uses a combination of static and dynamic type information to choose the implementation of a method at run-time. Furthermore, unlike all existing inheritance models, our model supports hierarchical method overriding: that is, methods can be independently overridden along the multiple inheritance hierarchy. We give illustrative examples of our language and features and formalize FHJ as a minimal Featherweight-Java style calculus.-
dc.languageeng-
dc.publisherSchloss Dagstuhl - Leibniz-Zentrum fuer Informatik GmbH. The Journal's web site is located at hhttp://www.dagstuhl.de/publikationen/lipics/-
dc.relation.ispartofLIPICS - Leibniz International Proceedings in Informatics-
dc.relation.ispartofThe 32nd European Conference on Object-Oriented Programming (ECOOP 2018)-
dc.rightsThis work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.-
dc.subjectmultiple inheritance-
dc.subjecthierarchical dispatching-
dc.subjectOOP-
dc.subjectlanguage design-
dc.titleFHJ: A Formal Model for Hierarchical Dispatching and Overriding-
dc.typeConference_Paper-
dc.identifier.emailDos Santos Oliveira, BC: bruno@cs.hku.hk-
dc.identifier.authorityDos Santos Oliveira, BC=rp01786-
dc.description.naturepublished_or_final_version-
dc.identifier.doi10.4230/LIPIcs.ECOOP.2018.20-
dc.identifier.scopuseid_2-s2.0-85052018324-
dc.identifier.hkuros323724-
dc.identifier.volume109-
dc.identifier.spage20:1-
dc.identifier.epage20:30-
dc.publisher.placeGermany-

Export via OAI-PMH Interface in XML Formats


OR


Export to Other Non-XML Formats