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
Multi-methods are a straightforward extension of traditional (single) dynamic dispatch, which is the...
Message passing is a crucial feature of any object-oriented language implementation. Even more so in...
Two current trends in object-oriented programming: prototype-based languages and multi-method langua...
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...
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 ...
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...
D.3.2 [Programming Languages] Language Classifications — object-oriented languages; D.3.3 [Programmi...
Dynamic binding in object-oriented languages is perhaps the most important semantic aspect of these ...
In object-oriented programming languages, multiple dispatching provides increased expressive power o...
In programming we some times need to choose between several implementations of the same functionalit...
Mainstream object-oriented languages, such as C++ and Java1, provide only a restricted form of polym...
Multi-methods are a straightforward extension of traditional (single) dynamic dispatch, which is the...
Message passing is a crucial feature of any object-oriented language implementation. Even more so in...
Two current trends in object-oriented programming: prototype-based languages and multi-method langua...
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...
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 ...
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...
D.3.2 [Programming Languages] Language Classifications — object-oriented languages; D.3.3 [Programmi...
Dynamic binding in object-oriented languages is perhaps the most important semantic aspect of these ...
In object-oriented programming languages, multiple dispatching provides increased expressive power o...
In programming we some times need to choose between several implementations of the same functionalit...
Mainstream object-oriented languages, such as C++ and Java1, provide only a restricted form of polym...
Multi-methods are a straightforward extension of traditional (single) dynamic dispatch, which is the...
Message passing is a crucial feature of any object-oriented language implementation. Even more so in...
Two current trends in object-oriented programming: prototype-based languages and multi-method langua...