This program is tentative and subject to change.
Static type systems help prevent errors, improve abstractions, and enable optimisations. There is a whole spectrum of type systems for general-purpose languages, covering a wide range of safety guarantees and expressivity. Despite this, type systems for array programming languages are usually at one of two extremes. In the majority of cases they are nearly untyped, only distinguishing array types by element type or number of dimensions. Otherwise, they tend to reach for powerful dependent types. However, it is difficult to extend existing solutions with a dependent type system, and some problems become undecidable when we do so. Practical array programming – in data science, machine learning and the like – sticks to the bliss of dynamic typing.
We propose a novel calculus for array programming: Star. Array indices and shapes in Star make use of structural record and variant types equipped with subtyping. We prevent indexing errors not by resolving arithmetic problems, but by enabling richer types for arrays, allowing programmers to capture their structure explicitly. While we present Star with only subtype polymorphism, we sketch how algebraic subtyping promises efficient ML-style polymorphic type inference.
This program is tentative and subject to change.
Tue 17 JunDisplayed time zone: Seoul change
15:40 - 17:00 | |||
15:40 30mTalk | Kuiper: verified and efficient GPU programming ARRAY Guido Martínez Microsoft Research, Jonas Fiala ETH Zürich, Abhinav Jangda Microsoft Research, Angelica Moreira Microsoft Research, Nikhil Swamy Microsoft Research, Tyler Sorensen Microsoft Research | ||
16:10 30mTalk | Structuring Arrays with Algebraic Shapes ARRAY Jakub Bachurski University of Cambridge, Alan Mycroft University of Cambridge, Dominic Orchard University of Cambridge; University of Kent DOI |