O. Agesen et al., TYPE INFERENCE OF SELF - ANALYSIS OF OBJECTS WITH DYNAMIC AND MULTIPLE INHERITANCE, Software, practice & experience, 25(9), 1995, pp. 975-995
We have designed and implemented a type inference algorithm for the SE
LF language, The algorithm tan guarantee the safety and disambiguity o
f message sends, and provide useful information for browsers and optim
izing compilers, SELF features objects with dynamic inheritance, This
construct has until now been considered incompatible with type inferen
ce because it allows the inheritance graph to change dynamically. Our
algorithm handles this by deriving and solving type constraints that s
imultaneously define supersets of both the possible values of expressi
ons and of,the possible inheritance graphs, The apparent circularity i
s resolved by computing a global fixed-point, in polynomial time,The a
lgorithm has been implemented and can successfully handle the SELF ben
chmark programs, which exist in the 'standard SELF world' of more than
40,000 lines of code.