Compact Dispatch Tables for Dynamically Typed Object Oriented Languages

Dynamically typed object-oriented languages must perform dynamic binding for most message sends. Typically this is slow. A number of papers have reported on attempts to adapt C++-style selector table indexing to dynamically typed languages, but it is difficul to generate space-efficient tables. Our algorithm generates considerably smaller dispatch tables for languages with single inheritance than its predecessors at the cost of a small dispatch time penalty.

[1]  Bjarne Stroustrup,et al.  The Annotated C++ Reference Manual , 1990 .

[2]  David Ungar,et al.  The design and evaluation of a high performance Smalltalk system , 1987 .

[3]  Jan Vitek,et al.  Message Dispatch on Pipelined Processors , 1995, ECOOP.

[4]  Terry A. McKee,et al.  A fast method dispatcher for compiled languages with multiple inheritance , 1989, OOPSLA 1989.

[5]  Jan Vitek,et al.  Compact Dispatch Tables for Dynamically Typed Programming Languages , 1996 .

[6]  Paul Schweizer,et al.  A fast method dispatcher for compiled languages with multiple inheritance , 1989, OOPSLA '89.

[7]  L. Peter Deutsch,et al.  Efficient implementation of the smalltalk-80 system , 1984, POPL.

[8]  Karel Driesen Method Lookup Strategies in Dynamically Typed Object-Oriented Programming Languages , 1993 .

[9]  Craig Chambers,et al.  Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches , 1991, ECOOP.

[10]  Andrew A. Chien,et al.  Precise concrete type inference for object-oriented languages , 1994, OOPSLA 1994.

[11]  Jean-Claude Royer,et al.  Optimizing method search with lookup caches and incremental coloring , 1992, OOPSLA '92.

[12]  R. Nigel Horspool,et al.  Compile-Time Analysis of Object-Oriented Programs , 1992, CC.

[13]  Karel Driesen,et al.  Minimizing row displacement dispatch tables , 1995, OOPSLA.

[14]  Gregor Kiczales,et al.  Efficient method dispatch in PCL , 1990, LISP and Functional Programming.

[15]  Terry A. McKee,et al.  OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications , 1989 .

[16]  Karel Driesen Selector table indexing & sparse arrays , 1993, OOPSLA '93.