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

Displayed time zone: Belfast change

10:30 - 12:10
TypesScala at Epernay
10:30
30m
Research paper
Dependent Object Types with Implicit Functions
Scala
Alex Jeffery University of Sussex
11:00
20m
Talk
Symmetric Multiple Dispatch for Path Dependent Types
Scala
Jaemin Hong KAIST, South Korea, Sukyoung Ryu KAIST, South Korea
11:20
20m
Talk
A universal encoding for functions in Scala based on structural types
Scala
Guillaume Martres EPFL, Switzerland
11:40
30m
Short-paper
Towards Improved GADT Reasoning in Scala
Scala
Lionel Parreaux EPFL, Aleksander Boruch-Gruszecki EPFL, Paolo G. Giarrusso TU Delft, The Netherlands