Many popular object-oriented programming languages, such as C++, Smalltalk-80, Java, and Eiffel, do not support multiple dispatch. Yet without multiple dispatch, programmers find it difficult to express binary methods and design patterns such as the "visitor" pattern. We describe a new, simple, and orthogonal way to add multimethods to single-dispatch object-oriented languages, without affecting existing code. The new mechanism also clarifies many differences between single and multiple dispatch. Keywords Multiple dispatch, multimethods, generic functions, typing, single dispatch, binary methods, semantics, language design, Tuple. 1 INTRODUCTION Single dispatch, as found in C++ [Stroustrup 97], Java [Arnold & Gosling 98, G...
Although most popular object oriented languages use single dispatch, multiple dispatch programming l...
AbstractMultiple dispatch–the selection of a function to be invoked based on the dynamic type of two...
We present a new language feature, specified as an extension to Java. The feature is a form of dispa...
Many popular object-oriented programming languages, such as C++, Smalltalk-80, Java, and Eiffel, do ...
Multiple dispatch allows determining the actual method to be executed, depending on the dynamic type...
Multiple dispatching provides increased expressive power over single dispatching by guiding method l...
AbstractGoals of flexibility and re-usability in typed object-oriented languages suggest the require...
Multiple dispatch uses the run time types of more than one argument to a method call to determine wh...
D.3.2 [Programming Languages] Language Classifications — object-oriented languages; D.3.3 [Programmi...
AbstractGoals of flexibility and re-usability in typed object-oriented languages suggest the require...
Mainstream object-oriented languages, such as C++ and Java1, provide only a restricted form of polym...
In java, method dispatch is done at runtime, by late-binding, with respect to the dynamic type of th...
Multiple dispatch offers several well-known advantages over the single dispatching of conventional o...
Double dispatch is the ability of selecting dynamically a method not only according to the run-time ...
Multi-methods are a straightforward extension of traditional (single) dynamic dispatch, which is the...
Although most popular object oriented languages use single dispatch, multiple dispatch programming l...
AbstractMultiple dispatch–the selection of a function to be invoked based on the dynamic type of two...
We present a new language feature, specified as an extension to Java. The feature is a form of dispa...
Many popular object-oriented programming languages, such as C++, Smalltalk-80, Java, and Eiffel, do ...
Multiple dispatch allows determining the actual method to be executed, depending on the dynamic type...
Multiple dispatching provides increased expressive power over single dispatching by guiding method l...
AbstractGoals of flexibility and re-usability in typed object-oriented languages suggest the require...
Multiple dispatch uses the run time types of more than one argument to a method call to determine wh...
D.3.2 [Programming Languages] Language Classifications — object-oriented languages; D.3.3 [Programmi...
AbstractGoals of flexibility and re-usability in typed object-oriented languages suggest the require...
Mainstream object-oriented languages, such as C++ and Java1, provide only a restricted form of polym...
In java, method dispatch is done at runtime, by late-binding, with respect to the dynamic type of th...
Multiple dispatch offers several well-known advantages over the single dispatching of conventional o...
Double dispatch is the ability of selecting dynamically a method not only according to the run-time ...
Multi-methods are a straightforward extension of traditional (single) dynamic dispatch, which is the...
Although most popular object oriented languages use single dispatch, multiple dispatch programming l...
AbstractMultiple dispatch–the selection of a function to be invoked based on the dynamic type of two...
We present a new language feature, specified as an extension to Java. The feature is a form of dispa...