Source: University of Alabama
Formal treatments of inheritance are rather scarce and those that do exist are often more suited for analysis of existing systems than as guides to language designers. One problem that adds complexity to previous efforts is the need to pass a reference to the original invoking object throughout the method call tree. In this paper, a novel specification of inheritance semantics is given. The approach dispenses with self-reference, instead using static and dynamic scope to accomplish similar behaviour. The result is a methodology that is simpler than previous specification attempts, easy to understand, and sufficiently expressive. Moreover, an inheritance system based on this approach can be implemented with relatively few lines of code in environment-passing interpreters.