Might be worth looking at Smalltalk papers too - they've been doing objects forever. If I remember correctly, some smalltalks have an interesting form of caching: they call the last thing the call resolved to, and redispatch as necessary. So rather than looking things up before every call, you make the same call as last time, and the called routine does:
a) are we supposed to be here? (presumed to be cheaper) b) if not, redispatch and re-cache (presumed to be more expensive) c) main method body I'm not sure if that's apropos, but I thought it was quite clever when I first read about it. Searching the web for [smalltalk cache] pulls up some interesting info and discussions. Zellyn