Which comes first: the object or the class? Language designers enjoy the conceptual simplicity of object-based languages (such as Emerald or Self) while many programmers prefer the pragmatic utility of classical inheritance (as in Simula and Java). Programmers in object-based languages have a tendency to build libraries to support traditional inheritance, and language implementations are often contorted to the same end. In this paper, we revisit the relationship between classes and objects. We model various kinds of inheritance in the context of an object-oriented language whose objects are not defined by classes, and explain why class inheritance and initialisation cannot be easily modelled purely by delegation.
@InProceedings{jones_et_al:LIPIcs.ECOOP.2016.13, author = {Jones, Timothy and Homer, Michael and Noble, James and Bruce, Kim}, title = {{Object Inheritance Without Classes}}, booktitle = {30th European Conference on Object-Oriented Programming (ECOOP 2016)}, pages = {13:1--13:26}, series = {Leibniz International Proceedings in Informatics (LIPIcs)}, ISBN = {978-3-95977-014-9}, ISSN = {1868-8969}, year = {2016}, volume = {56}, editor = {Krishnamurthi, Shriram and Lerner, Benjamin S.}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2016.13}, URN = {urn:nbn:de:0030-drops-61077}, doi = {10.4230/LIPIcs.ECOOP.2016.13}, annote = {Keywords: Inheritance, Objects, Classes, Operational semantics} }
Feedback for Dagstuhl Publishing