Wed 18 Nov 2020 02:00 - 02:20 at SPLASH-I - T-4 Chair(s): Sophia Drossopoulou, Julien Lange
Every newly created object goes through several initialization states:
starting from a state where all fields are uninitialized until all of
them are assigned. Any operation on the object during its initialization
process, which usually happens in the constructor via \emph{this}, has to
observe the initialization states of the object for correctness,
i.e.~only initialized fields may be used. Checking safe usage of
\emph{this} statically, without manual annotation of initialization
states in the source code, is a challenge, due to aliasing and virtual method
calls on \emph{this}.
Mainstream languages either do not check initialization errors, such as
Java, C++, Scala, or they defend against them by not supporting useful
initialization patterns, such as Swift. In parallel, past research has
shown that safe initialization can be achieved for varying degrees of
expressiveness but by sacrificing syntactic simplicity.
We approach the problem by upholding \emph{local reasoning about
initialization} which avoids whole-program analysis, and we achieve
\emph{typestate polymorphism} via subtyping.
On this basis, we put forward a
novel type-and-effect system that can effectively ensure
initialization safety while allowing flexible initialization patterns.
We implement an initialization checker in the Scala 3 compiler and
evaluate on several real-world projects.
Tue 17 NovDisplayed time zone: Central Time (US & Canada) change
13:00 - 14:20 | T-4OOPSLA at SPLASH-I +12h Chair(s): Michael Pradel University of Stuttgart, Germany, Sophia Drossopoulou Imperial College London | ||
13:00 20mTalk | A Structural Model for Contextual Code Changes OOPSLA Link to publication DOI Pre-print Media Attached | ||
13:20 20mTalk | A Systematic Approach to Deriving Incremental Type Checkers OOPSLA André Pacak JGU Mainz, Sebastian Erdweg University of Mainz, Tamás Szabó University of Mainz / itemis Link to publication DOI Media Attached | ||
13:40 20mTalk | Detecting Locations in JavaScript Programs Affected by Breaking Library Changes OOPSLA Anders Møller Aarhus University, Benjamin Barslev Nielsen Aarhus University, Martin Toldam Torp Aarhus University Link to publication DOI Pre-print Media Attached | ||
14:00 20mTalk | A Type-and-Effect System for Object Initialization OOPSLA Fengyun Liu EPFL, Ondřej Lhoták University of Waterloo, Aggelos Biboudis EPFL, Paolo G. Giarrusso Delft University of Technology, Martin Odersky EPFL Link to publication DOI Media Attached |
Wed 18 NovDisplayed time zone: Central Time (US & Canada) change
01:00 - 02:20 | T-4OOPSLA at SPLASH-I Chair(s): Sophia Drossopoulou Imperial College London, Julien Lange Royal Holloway University of London | ||
01:00 20mTalk | A Structural Model for Contextual Code Changes OOPSLA Link to publication DOI Pre-print Media Attached | ||
01:20 20mTalk | A Systematic Approach to Deriving Incremental Type Checkers OOPSLA André Pacak JGU Mainz, Sebastian Erdweg University of Mainz, Tamás Szabó University of Mainz / itemis Link to publication DOI Media Attached | ||
01:40 20mTalk | Detecting Locations in JavaScript Programs Affected by Breaking Library Changes OOPSLA Anders Møller Aarhus University, Benjamin Barslev Nielsen Aarhus University, Martin Toldam Torp Aarhus University Link to publication DOI Pre-print Media Attached | ||
02:00 20mTalk | A Type-and-Effect System for Object Initialization OOPSLA Fengyun Liu EPFL, Ondřej Lhoták University of Waterloo, Aggelos Biboudis EPFL, Paolo G. Giarrusso Delft University of Technology, Martin Odersky EPFL Link to publication DOI Media Attached |