ThesaHelp: references a-b
Group: object-oriented programming
Topic: lambda calculus
Group: type inheritance
Topic: object-oriented prototypes
Topic: inheritance by delegation
Topic: inheritance of properties
| |
Reference
Abadi, M., Cardelli, L.,
A theory of objects, New York, Springer-Verlag, 1996.
Google
Quotations
i ;;Quote: a theory of objects as a foundation for object-oriented programming; like lambda calculus but based on objects as primitives; handles classes, self, dynamic dispatch, inheritance, etc.
| 18 ;;Quote: subsumption is the property that a value of type A is also a value of any supertype B with A<:B
| 20 ;;Quote: the product type is a covariant type operator on pairs of types; i.e., A x B <: A' x B' provided that A <: A' and B <: B'
| 21 ;;Quote: a function type is a contravariant type operator on pairs of types; i.e., A -> B <: A' -> B' provided that A' <: A and B <: B'; extends to multiple arguments
| 21+;;Quote: methods vary contravariantly from classes to subclasses; despite debate to the contrary
| 21 ;;Quote: an update type is an invariant type operator on pairs of types; i.e., if A * B means A and B may be updated, then A * B <: A' * B' provided A=A' and B=B'
| 42 ;;Quote: delegation inheritance shares attributes while embedding inheritance copies attributes; can distinguish in object-based languages but not class-based languages
| 47 ;;Quote: delegation-based object languages like Self and Cecil now distinguish trait objects (like classes), prototype objects (for cloning), and normal objects; enforceable
|
Related Topics
ThesaHelp: references a-b (396 items)
Group: object-oriented programming (26 topics, 822 quotes)
Topic: lambda calculus (16 items)
Group: type inheritance (13 topics, 394 quotes)
Topic: object-oriented prototypes (39 items)
Topic: inheritance by delegation (8 items)
Topic: inheritance of properties (24 items)
|