Mon 16 Nov 2020 06:00 - 06:20 at SPLASH-I - S-6 Chair(s): Olivier Flückiger, Jeremy Gibbons
The Scala programming language makes all reference types implicitly nullable. This is a problem, because null references do not support most operations that do make sense on regular objects, leading to runtime errors. In this paper, we present a modification to the Scala type system that makes nullability explicit in the types. Specifically, we make reference types non-nullable by default, while still allowing for nullable types via union types. We have implemented this design for explicit nulls as a fork of the Dotty (Scala 3) compiler. We evaluate our scheme by migrating a number of Scala libraries to use explicit nulls. Finally, we give a denotational semantics of type nullification, the interoperability layer between Java and Scala with explicit nulls. We show a soundness theorem stating that, for variants of System F omega that model Java and Scala, nullification preserves elements of ground types.
Sun 15 NovDisplayed time zone: Central Time (US & Canada) change
17:00 - 18:20 | S-6Research Papers at SPLASH-I +12h Chair(s): Shigeru Chiba The University of Tokyo, Tiark Rompf Purdue University | ||
17:00 20mTalk | Static Race Detection and Mutex Safety and Liveness for Go Programs Research Papers Link to publication DOI Media Attached | ||
17:20 20mTalk | Reference immutability for DOT Research Papers Link to publication DOI Media Attached | ||
17:40 20mTalk | Multiparty Session Programming with Global Protocol Combinators Research Papers Keigo Imai Gifu University, Rumyana Neykova Brunel University London, Nobuko Yoshida Imperial College London, Shoji Yuen Nagoya University Link to publication DOI Media Attached | ||
18:00 20mTalk | Scala with Explicit Nulls Research Papers Abel Nieto Aarhus University, Yaoyu Zhao University of Waterloo, Ondřej Lhoták University of Waterloo, Angela Chang University of Waterloo, Justin Pu University of Waterloo Link to publication DOI Pre-print Media Attached |
Mon 16 NovDisplayed time zone: Central Time (US & Canada) change
05:00 - 06:20 | S-6Research Papers at SPLASH-I Chair(s): Olivier Flückiger Northeastern University, Jeremy Gibbons Department of Computer Science, University of Oxford | ||
05:00 20mTalk | Static Race Detection and Mutex Safety and Liveness for Go Programs Research Papers Link to publication DOI Media Attached | ||
05:20 20mTalk | Reference immutability for DOT Research Papers Link to publication DOI Media Attached | ||
05:40 20mTalk | Multiparty Session Programming with Global Protocol Combinators Research Papers Keigo Imai Gifu University, Rumyana Neykova Brunel University London, Nobuko Yoshida Imperial College London, Shoji Yuen Nagoya University Link to publication DOI Media Attached | ||
06:00 20mTalk | Scala with Explicit Nulls Research Papers Abel Nieto Aarhus University, Yaoyu Zhao University of Waterloo, Ondřej Lhoták University of Waterloo, Angela Chang University of Waterloo, Justin Pu University of Waterloo Link to publication DOI Pre-print Media Attached |