Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Object structure in the Emerald system
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Objects as closures: abstract semantics of object-oriented languages
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Inheritance in smalltalk-80: a denotational definition
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A denotational semantics of inheritance and its correctness
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Delegation versus concatenation or cloning is inheritance too
ACM SIGPLAN OOPS Messenger
Object-oriented programming in the BETA programming language
Object-oriented programming in the BETA programming language
Smalltalk: best practice patterns
Smalltalk: best practice patterns
Classes versus prototypes in object-oriented languages
ACM '86 Proceedings of 1986 ACM Fall joint computer conference
A Theory of Objects
Rabbit: A Compiler for Scheme
Are We Ready for a Safer Construction Environment?
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Programming Scala: Scalability = Functional Programming + Objects
Programming Scala: Scalability = Functional Programming + Objects
Proxies: design principles for robust object-oriented intercession APIs
Proceedings of the 6th symposium on Dynamic languages
Grace: the absence of (inessential) difficulty
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
The Java Language Specification, Java SE 7 Edition
The Java Language Specification, Java SE 7 Edition
Hi-index | 0.00 |
Since the groundbreaking work of Kamin, Reddy, and particularly Cook in the late 1980s, there has been broad agreement that the meaning of inheritance in object-oriented programming languages can be best explained using generator functions and their fixpoints. Consequently, it is a little surprising to realise that no current mainstream programming language actually explains inheritance to its users in this way. Instead, most languages make up a "story" that purports to explain inheritance, but that on closer inspection contains serious flaws. It is as if, being asked to explain the facts of life to our children, we are so embarrassed by the truth that we make up a story about storks, knowing even as we do so that it defies the laws not only of biology but also of physics. This paper explores both the truth and the fictions about how objects are brought into the world. My hope is that future programming languages can tell the children, if not the whole truth, then at least a partial truth that is consistent with the laws of mathematics.