Towards null safety benchmarks for object initialization
Modelirovanie i analiz informacionnyh sistem, Tome 24 (2017) no. 6, pp. 718-729.

Voir la notice de l'article provenant de la source Math-Net.Ru

Null pointer dereferencing remains one of the major issues in modern object-oriented languages. An obvious addition of keywords to distinguish between never null and possibly null references appears to be insufficient during object initialization when some fields declared as never null may be temporary null before the initialization completes. This work identifies the key reasons of the object initialization problem. It suggests scenarios and metrics to be used as the benchmarks to compare solutions of this problem. Finally, it demonstrates application of the benchmarks on the proposed solution for object initialization in Eiffel. The article is published in the author’s wording.
Keywords: null pointer dereferencing, null safety, void safety, object initialization, static analysis, null safety benchmarks.
@article{MAIS_2017_24_6_a4,
     author = {A. V. Kogtenkov},
     title = {Towards null safety benchmarks for object initialization},
     journal = {Modelirovanie i analiz informacionnyh sistem},
     pages = {718--729},
     publisher = {mathdoc},
     volume = {24},
     number = {6},
     year = {2017},
     language = {en},
     url = {http://geodesic.mathdoc.fr/item/MAIS_2017_24_6_a4/}
}
TY  - JOUR
AU  - A. V. Kogtenkov
TI  - Towards null safety benchmarks for object initialization
JO  - Modelirovanie i analiz informacionnyh sistem
PY  - 2017
SP  - 718
EP  - 729
VL  - 24
IS  - 6
PB  - mathdoc
UR  - http://geodesic.mathdoc.fr/item/MAIS_2017_24_6_a4/
LA  - en
ID  - MAIS_2017_24_6_a4
ER  - 
%0 Journal Article
%A A. V. Kogtenkov
%T Towards null safety benchmarks for object initialization
%J Modelirovanie i analiz informacionnyh sistem
%D 2017
%P 718-729
%V 24
%N 6
%I mathdoc
%U http://geodesic.mathdoc.fr/item/MAIS_2017_24_6_a4/
%G en
%F MAIS_2017_24_6_a4
A. V. Kogtenkov. Towards null safety benchmarks for object initialization. Modelirovanie i analiz informacionnyh sistem, Tome 24 (2017) no. 6, pp. 718-729. http://geodesic.mathdoc.fr/item/MAIS_2017_24_6_a4/

[1] Fähndrich Manuel, Leino K. Rustan M., “Declaring and Checking Non-null Types in an Object-oriented Language”, Proceedings of the 18th Annual ACM SIGPLAN Conference on Object-oriented Programing, Systems, Languages, and Applications, OOPSLA '03, ACM, New York, NY, USA, 2003, 302–312 | DOI

[2] Fähndrich Manuel, Xia Songtao, “Establishing Object Invariants with Delayed Types”, Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-oriented Programming Systems and Applications, OOPSLA '07, ACM, New York, NY, USA, 2007, 337–350 | DOI

[3] Gamma Erich, Helm Richard, Johnson Ralph, Vlissides John, Design Patterns: Elements of Reusable Object-oriented Software, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1995

[4] JetBrains, Kotlin Language Specification, (visited on 2017-01-31) https://jetbrains.github.io/kotlin-spec/kotlin-spec.pdf

[5] Kogtenkov A. V., “Mechanically Proved Practical Local Null Safety”, Proceedings of the Institute for System Programming of the RAS, 28:5 (2016), 27–54 | DOI

[6] Bertrand Meyer, Targeted expressions: safe object creation with void safety, , 2017 (visited on 2017-05-08) http://se.ethz.ch/m̃eyer/publications/online/targeted.pdf

[7] Qi Xin, Myers Andrew C., “Masked Types for Sound Object Initialization”, Proceedings of the 36th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL '09, ACM, New York, NY, USA, 2009, 53–65 | DOI | Zbl

[8] Spoto Fausto, “Precise null-pointer analysis”, Software Systems Modeling, 10:2 (2011), 219–252 | DOI

[9] Summers Alexander J., Müller Peter, “Freedom Before Commitment: A Lightweight Type System for Object Initialisation”, Proceedings of the 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA '11, ACM, New York, NY, USA, 2011, 1013–1032 | DOI

[10] Kogtenkov Alexander, “Practical Void Safety”, Verified Software. Theories, Tools, and Experiments, 2017 | DOI