Liu, FengyunBiboudis, AggelosGiarrusso, Paolo G.Odersky, Martin2020-01-092020-01-092020-01-092020-01-09https://infoscience.epfl.ch/handle/20.500.14299/164486Accessing uninitialized data during object initialization is a common and subtle programming error. This error is either not prevented by mainstream languages, like in Java, C++, Scala, or it is prevented by greatly restricting initialization patterns, like in Swift. In this paper, we propose a model called _Celsius_ for safe and modular initialization of objects, and prove its soundness. We extend the model and implement a prototype in Scala. The experiments on several real-world Scala projects show that the design requires few programmer annotations.Object initialization, ScalaCelsius: A Model for Safe Initialization of Objectstext::report::research report