SPLASH 2021
Sun 17 - Fri 22 October 2021 Chicago, Illinois, United States
Thu 21 Oct 2021 14:20 - 14:35 at Zurich D - Types Chair(s): Christos Dimoulas
Thu 21 Oct 2021 22:20 - 22:35 at Zurich D - Types - mirror Chair(s): Wei-Ngan Chin

We present a simple, practical, and expressive relational nullable type system. A relational nullable type system captures whether an expression may evaluate to null based on its type, but also based on the type of other related expressions. The type system extends the Hindley-Milner type system with Boolean constraints, supports parametric polymorphism, and preserves principal types modulo Boolean equivalence. We show how to support full Hindley-Milner style type inference with an extension of Algorithm W.

We conduct a preliminary study of open source projects showing that there is a need for relational nullable type systems across a wide range of programming languages. The most important findings from the study are: (i) programmers use programming patterns where the nullability of one expression depends on the nullability of other related expressions, (ii) such invariants are commonly enforced with run-time exceptions, and (iii) reasoning about these programming patterns requires not only knowledge of when an expression may evaluate to null, but also when it may evaluate to a non-null value. We incorporate these observations in the design of the proposed relational nullable type system.

Thu 21 Oct

Displayed time zone: Central Time (US & Canada) change

13:50 - 15:10
TypesOOPSLA at Zurich D +8h
Chair(s): Christos Dimoulas PLT @ Northwestern University
13:50
15m
Talk
Study of the Subtyping Machine of Nominal Subtyping with VarianceDistinguished PaperVirtual
OOPSLA
Ori Roth Technion
DOI Pre-print Media Attached
14:05
15m
Talk
Label Dependent Lambda Calculus and Gradual TypingVirtual
OOPSLA
Weili Fu University of Edinburgh, Fabian Krause University of Freiburg, Peter Thiemann University of Freiburg, Germany
DOI
14:20
15m
Talk
Relational Nullable Types with Boolean UnificationVirtual
OOPSLA
Magnus Madsen Aarhus University, Jaco van de Pol Aarhus University
DOI
14:35
15m
Talk
Type Stability in Julia: Avoiding Performance Pathologies in JIT CompilationIn-Person
OOPSLA
Artem Pelenitsyn Northeastern University, Julia Belyakova Northeastern University, Benjamin Chung Northeastern University, Ross Tate Cornell University, Jan Vitek Northeastern University; Czech Technical University
DOI Pre-print
14:50
20m
Live Q&A
Discussion, Questions and Answers
OOPSLA

21:50 - 23:10
Types - mirrorOOPSLA at Zurich D
Chair(s): Wei-Ngan Chin National University of Singapore
21:50
15m
Talk
Study of the Subtyping Machine of Nominal Subtyping with VarianceDistinguished PaperVirtual
OOPSLA
Ori Roth Technion
DOI Pre-print Media Attached
22:05
15m
Talk
Label Dependent Lambda Calculus and Gradual TypingVirtual
OOPSLA
Weili Fu University of Edinburgh, Fabian Krause University of Freiburg, Peter Thiemann University of Freiburg, Germany
DOI
22:20
15m
Talk
Relational Nullable Types with Boolean UnificationVirtual
OOPSLA
Magnus Madsen Aarhus University, Jaco van de Pol Aarhus University
DOI
22:35
15m
Talk
Type Stability in Julia: Avoiding Performance Pathologies in JIT CompilationIn-Person
OOPSLA
Artem Pelenitsyn Northeastern University, Julia Belyakova Northeastern University, Benjamin Chung Northeastern University, Ross Tate Cornell University, Jan Vitek Northeastern University; Czech Technical University
DOI Pre-print
22:50
20m
Live Q&A
Discussion, Questions and Answers
OOPSLA