@inproceedings{ObjectInheritance-Jones2016,
    title = {Object Inheritance Without Classes},
    booktitle = {European Conference on Object-Oriented Programming},
    year = 2016,
    doi = "10.4230/LIPIcs.ECOOP.2016.13",
    url = "https://michael.homer.nz/Publications/ECOOP2016/ObjectInheritance-Jones2016.pdf",
    author = {Jones, Timothy and Homer, Michael and Noble, James and Bruce, Kim},
    abstract = {
        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 (such as 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 modelled
        purely by delegation.
    }
}
