Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2989225.2989229acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Just-in-time inheritance: a dynamic and implicit multiple inheritance mechanism

Published: 01 November 2016 Publication History

Abstract

Multiple inheritance is often criticised for the ambiguity that arises when multiple parents want to pass on a feature with the same name to their offspring. A survey of programming languages reveals that no programming language has an inherently implicit and dynamic approach to resolve this ambiguity. This paper identifies just-in-time inheritance as the first implicit and dynamic inheritance mechanism. The key idea of just-in-time inheritance is that one of the parents is favoured over the others, which resolves the ambiguity, and that the favoured parent can change at runtime. However, just-in-time inheritance is not the silver bullet to solve all ambiguity problems heir to multiple inheritance, because it is not applicable in all scenarios. We conclude that the applicability of just-in-time inheritance is to be found in systems where multiple inheritance is used to model an ``is-a OR is-a''-relation, rather than the more traditional ``is-a AND is-a''-relation.

References

[1]
K. Barrett, B. Cassels, P. Haahr, D. A. Moon, K. Playford, and P. T. Withington. A Monotonic Superclass Linearization for Dylan. In Proceedings of the Conference on Object-oriented Programming, Systems, Languages, and Applications, OOPSLA ’96, pages 69–82, 1996.
[2]
C. F. Bolz, L. Diekmann, and L. Tratt. Storage Strategies for Collections in Dynamically Typed Languages. In Proceedings of the Conference on Object-oriented programming, systems, languages, and applications, OOPSLA ’13, pages 167–182, 2013.
[3]
T. A. Cargill. The Evolution of C++. chapter The Case Against Multiple Inheritance in C++, pages 101–109. MIT Press, Cambridge, MA, USA, 1993. ISBN 0-262-73107-x.
[4]
C. Chambers, D. Ungar, B.-W. Chang, and U. Hlzle. Parents are shared parts of objects: Inheritance and encapsulation in self. In LISP and Symbolic Computation, pages 207–222, 1991.
[5]
M. De Wael. Just-in-Time Data Structures. PhD thesis, Vrije Universiteit Brussel, Belgium, May 2016.
[6]
M. De Wael, S. Marr, J. De Koster, J. B. Sartor, and W. De Meuter. Just-in-time Data Structures. In Proceedings of the International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Onward! ’15, pages 61–75, 2015.
[7]
S. Drossopoulou, F. Damiani, M. Dezani-Ciancaglini, and P. Giannini. More dynamic object reclassification: Fickle(ii). ACM Transactions on Programming Languages and Systems (TOPLAS), 24:153–191, 2002.
[8]
M. A. Ellis and B. Stroustrup. The Annotated C++ Reference Manual. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1990. ISBN 0-201-51459-1.
[9]
M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston, MA, USA, 1999. ISBN 0- 201-48567-2.
[10]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-oriented Software. Addison-Wesley Longman Publishing Co., Inc., 1995.
[11]
ISBN 0-201-63361-2.
[12]
A. Goldberg and D. Robson. Smalltalk-80: The Language and Its Implementation. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1983. ISBN 0-201-11371-6.
[13]
J. Gosling, B. Joy, and G. L. Steele. The Java Language Specification. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1st edition, 1996. ISBN 0201634511.
[14]
R. Hirschfeld, P. Costanza, and O. Nierstrasz. Context-Oriented Programming. Journal of Object Technology, March-April 2008, ETH Zurich, 7(3):125–151, 2008.
[15]
R. Howard. The Eiffel Programming Language. Dr. Dobb’s Journal, 18(11):68–73, October 1993. ISSN 1044-789X.
[16]
T. Jones, M. Homer, J. Noble, and K. Bruce. Object Inheritance Without Classes. In Proceedings of the European Conference on Object-Oriented Programming, volume 56 of ECOOP ’16, pages 13:1–13:26. Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik, 2016. ISBN 978-3-95977-014-9.
[17]
C. Jung, S. Rus, B. P. Railing, N. Clark, and S. Pande. Brainy: Effective selection of data structures. In Proceedings of the Conference on Programming Language Design and Implementation, PLDI ’11, pages 86–97, 2011.
[18]
G. Kiczales and J. D. Rivieres. The Art of the Metaobject Protocol. MIT Press, Cambridge, MA, USA, 1991. ISBN 0262111586.
[19]
H. Lieberman, L. Stein, and D. Ungar. Treaty of Orlando. In Addendum to the Proceedings of the Conference on Object-Oriented programming, systems, languages, and applications, OOPSLA ’87, pages 43–44, 1987.
[20]
Y. Minsky, A. Madhavapeddy, and J. Hickey. Real World OCaml. O’Reilly Media, 2013. ISBN 978-1449323912.
[21]
M. Odersky and Others. The Scala Language Specification. 2004.
[22]
O. Shacham, M. Vechev, and E. Yahav. Chameleon: Adaptive Selection of Collections. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI) ’09, pages 408–418, 2009.
[23]
G. L. Steele, Jr. Common LISP: The Language (2Nd Ed.). Digital Press, Newton, MA, USA, 1990. ISBN 1-55558-041- 6.
[24]
J. Sunshine, K. Naden, S. Stork, J. Aldrich, and E. Tanter. First-class State Change in Plaid. In Proceedings of the Conference on Object-oriented Programming, Systems, Languages, and Applications, OOPSLA ’11, pages 713–732, 2011.
[25]
V. Ureche, A. Biboudis, Y. Smaragdakis, and M. Odersky. Automating ad hoc data representation transformations. Technical report, EPFL, 2015.
[26]
G. van Rossum. The Python Language Reference. Technical report, 1990-2015.
[27]
G. H. Xu. Coco: Sound and adaptive replacement of java collections. In Proceedings of the European Conference on Object-Oriented Programming, ECOOP ’13, pages 1–26, 2013.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
DLS 2016: Proceedings of the 12th Symposium on Dynamic Languages
November 2016
131 pages
ISBN:9781450344456
DOI:10.1145/2989225
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 November 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. just-in-time data structures
  2. multiple inheritance

Qualifiers

  • Research-article

Conference

SPLASH '16
Sponsor:

Acceptance Rates

Overall Acceptance Rate 32 of 77 submissions, 42%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 123
    Total Downloads
  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 13 Nov 2024

Other Metrics

Citations

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media