This artifact is a companion to the paper "Scala with Explicit Nulls", where 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. The artifact contains an implementation of this new type system design as a fork of the Dotty (Scala 3) compiler. Additionally, the artifact contains the source code of multiple Scala libraries that we used to evaluate our design
A static type system is an important tool in efficiently developing correct software. We describe th...
Aliasing is a known source of challenges in the context of imperative object-oriented languages, whi...
Aliasing is a known source of challenges in the context of imperative object-oriented languages, whi...
The Scala programming language makes all reference types implicitly nullable. This is a problem, bec...
The Scala programming language unifies the object-oriented and functional styles of programming. One...
This artifact is a companion to the paper "Blame for Null", where we formalize multiple calculi to r...
We present short programs that demonstrate the unsoundness of Java and Scala's current type systems....
Multiple modern programming languages, including Kotlin, Scala, Swift, and C#, have type systems whe...
We report on our experiences in redesigning Scala\u27s collection libraries, focussing on the role t...
International audienceWe present type inference algorithms for nullable types in ML-like programming...
In the paper "Lightweight Session Programming in Scala", we introduce a "lightweight" integration of...
Reference mutability is a type-based technique for controlling mutation that has been thoroughly stu...
The Scala programming language offers two distinctive language features implicit parameters and impl...
Aliasing is a known source of challenges in the context of imperative object-oriented languages, whi...
Aliasing is a known source of challenges in the context of imperative object-oriented languages, whi...
A static type system is an important tool in efficiently developing correct software. We describe th...
Aliasing is a known source of challenges in the context of imperative object-oriented languages, whi...
Aliasing is a known source of challenges in the context of imperative object-oriented languages, whi...
The Scala programming language makes all reference types implicitly nullable. This is a problem, bec...
The Scala programming language unifies the object-oriented and functional styles of programming. One...
This artifact is a companion to the paper "Blame for Null", where we formalize multiple calculi to r...
We present short programs that demonstrate the unsoundness of Java and Scala's current type systems....
Multiple modern programming languages, including Kotlin, Scala, Swift, and C#, have type systems whe...
We report on our experiences in redesigning Scala\u27s collection libraries, focussing on the role t...
International audienceWe present type inference algorithms for nullable types in ML-like programming...
In the paper "Lightweight Session Programming in Scala", we introduce a "lightweight" integration of...
Reference mutability is a type-based technique for controlling mutation that has been thoroughly stu...
The Scala programming language offers two distinctive language features implicit parameters and impl...
Aliasing is a known source of challenges in the context of imperative object-oriented languages, whi...
Aliasing is a known source of challenges in the context of imperative object-oriented languages, whi...
A static type system is an important tool in efficiently developing correct software. We describe th...
Aliasing is a known source of challenges in the context of imperative object-oriented languages, whi...
Aliasing is a known source of challenges in the context of imperative object-oriented languages, whi...