Programming languages that support multiple dispatch rely on an expressive notion of subtyping to specify method applicability. In these languages, type annotations on method declarations are used to select, out of a potentially large set of methods, the one that is most appropriate for a particular tuple of arguments. Julia is a language for scientific computing built around multiple dispatch and an expressive subtyping relation. This paper provides the first formal definition of Julia’s subtype relation and motivates its design. We validate our specification empirically with an implementation of our definition that we compare against the existing Julia implementation on a collection of real-world programs. Our subtype implementation differs on 122 subtype tests out of 6’014476. The first 120 differences are due to a bug in Julia that was fixed once reported; the remaining 2 are under discussion.
Wed 7 NovDisplayed time zone: Guadalajara, Mexico City, Monterrey change
10:30 - 12:00 | |||
10:30 22mTalk | Effect Handlers for the Masses OOPSLA Jonathan Immanuel Brachthäuser University of Tübingen, Germany, Philipp Schuster University of Tübingen, Germany, Klaus Ostermann University of Tübingen, Germany | ||
10:52 22mTalk | Empowering Union and Intersection Types with Integrated Subtyping OOPSLA Link to publication DOI Pre-print | ||
11:15 22mTalk | Julia Subtyping: a Rational Reconstruction OOPSLA Francesco Zappa Nardelli Inria, Julia Belyakova Northeastern University, USA, Artem Pelenitsyn Northeastern University, Benjamin Chung Northeastern University, Jeff Bezanson Julia Computing, Jan Vitek Northeastern University DOI Media Attached | ||
11:37 22mTalk | Scopes as Types OOPSLA Hendrik van Antwerpen TU Delft, Casper Bach Poulsen Delft University of Technology, Arjen Rouvoet Delft University of Technology, Eelco Visser Delft University of Technology Link to publication DOI File Attached |