Efficient Dispatch of Multimethods in Constant Time Using Dispatch Trees
暂无分享,去创建一个
Optimizing method dispatch is a central issue in object-oriented language implementation. Besides overall efficiency, a major requirement for some languages and applications is constant-time performance. In systems with multi-methods, these requirements are still harder to meet. The compressed dispatch table scheme, presented in (Amiel et al, OOPSLA 94), was the first to meet them. Its compression algorithm is based on the definition of "pole types". In this report, we investigate another structure, namely the dispatch tree, showing that it can also meet those requirements. We show that pole types can be used to compress dispatch trees, and we describe some optimizations of compressed dispatch trees. The resulting run-time structures are yet smaller than compressed dispatch tables.
[1] Marie-Laure Mugnier,et al. Proposal for a Monotonic Multiple Inheritance Linearization , 1994, OOPSLA.
[2] R. Jakobson. On Language , 1990 .
[3] John G. Hosking,et al. Multi-Methods in a Statically-Typed Programming Language , 1991, ECOOP.
[4] Karel Driesen,et al. Minimizing row displacement dispatch tables , 1995, OOPSLA.
[5] Terry A. McKee,et al. A fast method dispatcher for compiled languages with multiple inheritance , 1989, OOPSLA 1989.