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 source code, is a challenge, due to aliasing and virtual method calls on \emph{this}. Mainstream languages either do not check initialization errors, like Java, C++, Scala, or they defend against them by not supporting useful initialization patterns, suc...
Null pointer dereferences are the most common runtime error in languages such as Java and C#. To all...
Null pointer dereferencing remains one of the major issues in modern object-oriented languages. An o...
Typestates are state machines used in object-oriented programming to specify and verify correct orde...
Every newly created object goes through several initialization states: starting from a state where a...
Every newly created object goes through several initialization states: starting from a state where a...
The inception of object-oriented programming introduces a category of bugs related to object constru...
International audienceAn object under initialization does not fulfill its class specification yet an...
Abstract. We present a type system for checking object immutability, read-only references, and class...
This paper presents a type-based solution to the long-standing problem of object initialization. Con...
Accessing uninitialized data during object initialization is a common and subtle programming error. ...
International audienceSun and the CERT recommend for secure Java development to not allow partially ...
Freshly created objects are a blank slate: their mutable state and their constant properties must be...
This is the artifact for our OOPSLA'20 paper that presents ιDOT, a Dependent Object Types calculus w...
Language-based information-flow security is concerned with specifying and enforcing security policie...
Abstract. Object-oriented class-based languages provide mechanisms for the initialization of newly-c...
Null pointer dereferences are the most common runtime error in languages such as Java and C#. To all...
Null pointer dereferencing remains one of the major issues in modern object-oriented languages. An o...
Typestates are state machines used in object-oriented programming to specify and verify correct orde...
Every newly created object goes through several initialization states: starting from a state where a...
Every newly created object goes through several initialization states: starting from a state where a...
The inception of object-oriented programming introduces a category of bugs related to object constru...
International audienceAn object under initialization does not fulfill its class specification yet an...
Abstract. We present a type system for checking object immutability, read-only references, and class...
This paper presents a type-based solution to the long-standing problem of object initialization. Con...
Accessing uninitialized data during object initialization is a common and subtle programming error. ...
International audienceSun and the CERT recommend for secure Java development to not allow partially ...
Freshly created objects are a blank slate: their mutable state and their constant properties must be...
This is the artifact for our OOPSLA'20 paper that presents ιDOT, a Dependent Object Types calculus w...
Language-based information-flow security is concerned with specifying and enforcing security policie...
Abstract. Object-oriented class-based languages provide mechanisms for the initialization of newly-c...
Null pointer dereferences are the most common runtime error in languages such as Java and C#. To all...
Null pointer dereferencing remains one of the major issues in modern object-oriented languages. An o...
Typestates are state machines used in object-oriented programming to specify and verify correct orde...