siebren@rivm.nl (Siebren van der Zee) (02/21/91)
Just curious: how would multiple inheritance fit in Modula 3's type system?
I.e. suppose one could write:
TYPE t1 = OBJECT
METHODS
read(buf: Text.T);
write(buf: Text.T)
END;
TYPE t2 = OBJECT
hip, hurray: (iene, miene, mutte);
METHODS
foo(); bar()
END;
TYPE t3 = t1, t2 OBJECT METHODS yetAnotherMethod() END;
VAR foo: t3;
How would a procedure that implements yetAnotherMethod be declared?
What C-code could the compiler produce to compute the address of foo.hip?
Which '<:' relations exist between t1, t2 and t3?
(There are probably syntax errors in the above code. I got just about
everything to use M3: enthusiasm, a computer. I only lack the compiler...)
Siebren