Multiple dispatch allows determining the actual method to be executed, depending on the dynamic types of its arguments. Although some programming languages provide multiple dispatch, most widespread object-oriented languages lack this feature. Therefore, different implementation techniques are commonly used to obtain multiple dispatch in these languages. We evaluate the existing approaches, presenting a new one based on hybrid dynamic and static typing. A qualitative evaluation is presented, considering factors such as software maintainability and readability, code size, parameter generalization, and compile-time type checking. We also perform a quantitative assessment of runtime performance and memory consumption
In programming we some times need to choose between several implementations of the same functionalit...
Arrays are such a rich and fundamental data type that they tend to be built into a language, either ...
D.3.2 [Programming Languages] Language Classifications — object-oriented languages; D.3.3 [Programmi...
Multiple dispatch allows determining the actual method to be executed, depending on the dynamic type...
Multiple dispatch uses the run time types of more than one argument to a method call to determine wh...
AbstractGoals of flexibility and re-usability in typed object-oriented languages suggest the require...
AbstractGoals of flexibility and re-usability in typed object-oriented languages suggest the require...
Many popular object-oriented programming languages, such as C++, Smalltalk-80, Java, and Eiffel, do ...
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...
Multiple dispatching provides increased expressive power over single dispatching by guiding method l...
AbstractMultiple dispatch–the selection of a function to be invoked based on the dynamic type of two...
In object-oriented programming languages, multiple dispatching provides increased expressive power o...
In java, method dispatch is done at runtime, by late-binding, with respect to the dynamic type of th...
Mainstream object-oriented languages, such as C++ and Java1, provide only a restricted form of polym...
In programming we some times need to choose between several implementations of the same functionalit...
Arrays are such a rich and fundamental data type that they tend to be built into a language, either ...
D.3.2 [Programming Languages] Language Classifications — object-oriented languages; D.3.3 [Programmi...
Multiple dispatch allows determining the actual method to be executed, depending on the dynamic type...
Multiple dispatch uses the run time types of more than one argument to a method call to determine wh...
AbstractGoals of flexibility and re-usability in typed object-oriented languages suggest the require...
AbstractGoals of flexibility and re-usability in typed object-oriented languages suggest the require...
Many popular object-oriented programming languages, such as C++, Smalltalk-80, Java, and Eiffel, do ...
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...
Multiple dispatching provides increased expressive power over single dispatching by guiding method l...
AbstractMultiple dispatch–the selection of a function to be invoked based on the dynamic type of two...
In object-oriented programming languages, multiple dispatching provides increased expressive power o...
In java, method dispatch is done at runtime, by late-binding, with respect to the dynamic type of th...
Mainstream object-oriented languages, such as C++ and Java1, provide only a restricted form of polym...
In programming we some times need to choose between several implementations of the same functionalit...
Arrays are such a rich and fundamental data type that they tend to be built into a language, either ...
D.3.2 [Programming Languages] Language Classifications — object-oriented languages; D.3.3 [Programmi...