Wed 17 Jul 2019 11:00 - 11:20 at Epernay - Types

Multiple dispatch is one kind of dynamic dispatch. It selects a method to call at run time based on the run-time types of multiple arguments. Unlike single dispatch, which considers the dynamic type of a single argument, multiple dispatch allows precise control of method dispatch and gives an intuitive solution for the binary method problem. Due to the advantages, several existing object-oriented languages use multiple dispatch. However, guaranteeing unambiguity of method calls is challenging and becomes harder when precedence does not exist among arguments. Previous work suggested static overloading rules to ensure unambiguity and type soundness of method invocations at compile time. In this paper, we present multiDOT, a language with symmetric multiple dispatch and path-dependent types. Path-dependent types make programs scalable but their non-trivial interactions with symmetric multiple dispatch have not been studied. We believe that this work provides a theoretical foundation for extending existing languages like Scala with symmetric multiple dispatch or designing new expressive object-oriented languages.

Wed 17 Jul
Times are displayed in time zone: Greenwich Mean Time : Belfast change