|Single Inheritance OO implementation history email@example.com (Christian Fabre) (1998-02-12)|
|Re: Single Inheritance OO implementation history firstname.lastname@example.org (1998-02-18)|
|From:||email@example.com (Per Bothner)|
|Date:||18 Feb 1998 23:04:23 -0500|
|Organization:||Cygnus Solutions, CA|
Christian Fabre <firstname.lastname@example.org> wrote:
>For methods, each class has a table of pointers to the methods' code,
>the ancestors' methods are assigned the lower indexes in the table,
>and the new methods introduced get the first one avalaible.
>Redefinition of a parent's method meaning reusing the same index as
>the redefined method but changing the pointed method.
>All right. I have to assert that all this is well known and is public
>knowledge, thus my question is this: who has described this technique
>for the first time in a paper and when? Or which "classical" or
>"authoritative" book can you think of -the older the better-, that has
>a description of this implementation strategy?
I would look into Simula67, done by Dahl and Nygaard in Oslo in the
1960s. Simula was the first object-oriented language. It was
compiled, and was a major influence on Stroustrup in designing C++.
While I am not familiar with Simula67 internals, I have always assumed
that they used (and invented) these now "classical" techniques.
Simula is still in use. The classical textbook is "SIMULA BEGIN".
Krogdahl in the late 70s described multiple inheritance as an
extension of the classical single-inheritance techniques. That paper
may have references to older papers. Your best bet are old papers
from either the University of Oslo or Norwegian Computing Centre
(Norsk Regnecentral). Academic libraries in the US may have some of
them. Dahl or Nygaard may be able to help you.
You can rest assured that the techniques you describe are over thirty
years old, and any patentable ideas have long since expired. (I'm
guessing that is your concern.)
Cygnus Solutions email@example.com http://www.cygnus.com/~bothner
Return to the
Search the comp.compilers archives again.