Efficient Multiple Dispatching Using Nested Transition-Arrays

Efficient implementation of multiple dispatching is critical with regard to the success of the multi-methods, which are recognized as a powerful mechanism in object-oriented programming languages. However, the current known time-efficient approaches suffer of poor space efficiency. This paper presents a novel multiple dispatching approach that substantially improves the space efficiency over the known constant time lookup approaches. The approach we propose is applicable to a wide range of languages supporting locally or partially ordered multi-methods, both statically and dynamically typed.

[1]  Rakesh Agrawal,et al.  Static type checking of multi-methods , 1991, OOPSLA '91.

[2]  Craig Chambers,et al.  Object-Oriented Multi-Methods in Cecil , 1992, ECOOP.

[3]  Marie-Laure Mugnier,et al.  Monotonic conflict resolution mechanisms for inheritance , 1992, OOPSLA.

[4]  Olivier Gruber,et al.  Optimizing Multi-Method Dispach Using Compressed Dispach Tables , 1994, BDA.

[5]  井上 謙蔵 A.V.Aho,J.D.Ullman 著, 『The Theory of Parsing,Translation,and Compiling』Volume I,II., B5版, 上下 10202P, 1972年(上)1973年(下), Prentice Hall , 1976 .

[6]  David A. Moon Object-oriented programming with flavors , 1986, OOPSLA 1986.

[7]  Patrick H. Dussud TICLOS: an implementation of CLOS for the explorer family , 1989, OOPSLA 1989.

[8]  David A. Moon,et al.  The Lisp Machine manual , 1981, SGAR.

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

[10]  Patrick H. Dussud TICLOS: an implementation of CLOS for the explorer family , 1989, OOPSLA '89.

[11]  Marie-Laure Mugnier,et al.  Monotonic conflict resolution mechanisms for inheritance , 1992, OOPSLA 1992.

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

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

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

[15]  Daniel G. Bobrow,et al.  CommonLoops: Merging Lisp and Object-Oriented Programming , 1986, OOPSLA.

[16]  Alexander Borgida,et al.  Efficient management of transitive relationships in large data and knowledge bases , 1989, SIGMOD '89.

[17]  Daniel G. Bobrow,et al.  CommonLoops: merging Lisp and object-oriented programming , 1986, OOPLSA '86.

[18]  Alfred V. Aho,et al.  The Theory of Parsing, Translation, and Compiling , 1972 .

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

[20]  Gary T. Leavens,et al.  Typechecking and modules for multi-methods , 1994, OOPSLA 1994.

[21]  Olivier Gruber,et al.  Optimizing Multi-Method Dispatch Using Compressed Dispatch Tables , 1994, OOPSLA.

[22]  Bruce G. Lindsay,et al.  Static type checking of multi-methods , 1991, OOPSLA '91.

[23]  Wolfgang Klas,et al.  Efficient Dynamic Look-Up Strategy for Multi-Methods , 1994, ECOOP.

[24]  Christophe Lécluse,et al.  Manipulation of Structured Values in Object-Oriented Databases , 1989, DBPL.

[25]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[26]  John G. Hosking,et al.  Multi-Methods in a Statically-Typed Programming Language , 1991, ECOOP.

[27]  David A. Moon,et al.  Object-oriented programming with flavors , 1986, OOPLSA '86.