現在、動的ディスパッチを実装するさまざまな方法を探しています。
私の知る限り、これを実装するには 2 つの「簡単な」方法があります。
- C++ のような仮想関数テーブル
- SmallTalk のようなメッセージ ディスパッチャー (メソッドを に属性として格納するという Python の考え方に多少似ています
__dict__
)
私が知る限り、VFT が選択された理由は、パフォーマンスが合理的で実装が簡単だった (また、C++ の個別のコンパイル モデルに適していた) ためであり、可能な限り最速の方法だったからではありません。
私はすでにいくつかの記事や出版物を読んだことがありますが、そのほとんどは「古い」ものであり (最後に読んだ(*) Pentium 200MHz を使用して言及されていました ... うーん)、それらが最新技術を表しているとは思えません。研究が停滞しない限り。
私は、に興味を持っています:
- ダイナミック ディスパッチ戦略は、複数の方法をサポートしている場合に適しています。
- さまざまな戦略のベンチマーク
私は特に最近の記事や非凡な戦略に興味があります (たとえそれらが効率的であるとは証明されなかったとしても)。
出版物は大歓迎です。自由に入手できればよりよいでしょう。それ以外の場合は、提示された技術の要約と結果が素晴らしいものになるでしょう。
実際のコンパイラの実装に関する技術記事も歓迎します。
(*) Eiffel に関するこの記事は、プログラム全体の分析が仮想呼び出しサイトの除去にどのように役立つかを示しています。