Celsius: A Model for Safe Initialization of Objects
Accessing 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.
Cite this item
Liu, F., Biboudis, A., Giarrusso, P. G., & Odersky, M. (2020). Celsius: A Model for Safe Initialization of Objects [Research Report]. https://infoscience.epfl.ch/handle/20.500.14299/164486
Click Copy to copy the citation, or select the text manually.
oopsla19.pdf
openaccess
583.03 KB
Adobe PDF
8b196573456f85b65828a996c75641ed