Attaining multiple dispatch in widespread object-oriented languages

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 commo...

Full description

Autores:
Ortin, Francisco
Redondo, Jose M.
Quiroga, Jose
Garcia, Miguel
Tipo de recurso:
Article of journal
Fecha de publicación:
2014
Institución:
Universidad Nacional de Colombia
Repositorio:
Universidad Nacional de Colombia
Idioma:
spa
OAI Identifier:
oai:repositorio.unal.edu.co:unal/48967
Acceso en línea:
https://repositorio.unal.edu.co/handle/unal/48967
http://bdigital.unal.edu.co/42424/
Palabra clave:
Multiple dispatch
multi-method
dynamic binding
reflection
method overload
hybrid typing.
Rights
openAccess
License
Atribución-NoComercial 4.0 Internacional
Description
Summary: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.