I am currently looking for various ways to implement dynamic dispatch.
As far as I know, there are two “simple” ways to implement this:
- Virtual function tables, as in C ++
- Message Manager, as in SmallTalk (which is somewhat reminiscent of Python's idea of storing methods as attributes in
__dict__ )
I would like to note that, as far as I know, VFTs were chosen because they performed reasonably and easily for implementation (and also because they were well suited for a separate C ++ compilation model), and not because they were the fastest methods.
I have already read several articles and publications, but most of them are "old" (the last ones that I read (*) mentioned using Pentium 200 MHz ... hum), so I doubt that they represent a modern state if research will not reach the stall.
I'm interested in:
- Dynamic sending strategies are all the better if they support multiple methods.
- Benchmarks of various strategies
I am particularly interested in recent articles and unusual strategies (even if they have not been effective).
Publications are welcome, it would be better if they were freely available, and otherwise the resume of the presented technique and the result would be wonderful.
Technical articles on real compiler implementations are also welcome.
(*) This article about Eiffel shows how all program analysis can help remove virtual call sites.
source share