Title :
Nullness Analysis in Boolean Form
Author_Institution :
Univ. di Verona, Verona
Abstract :
Attempts to dereference null result in an exception or a segmentation fault. Hence it is important to know those program points where this might occur and prove the others (or the entire program) safe. Nullness analysis of computer programs checks or infers non-null annotations for variables and object fields. Most nullness analyses currently use run-time checks or are incorrect or only verify manual annotations. We use here abstract interpretation to build and prove correct a static nullness analysis for Java byte code which infers non-null annotations. It is based on Boolean formulas, implemented with binary decision diagrams. Our experiments show it faster and more precise than the correct nullness analysis by Hubert, Jensen and Pichardie. We deal with static fields and exceptions, which is not the case of most other analyses. We claim that the result is theoretically clean and the implementation strong and scalable.
Keywords :
Boolean functions; Java; binary decision diagrams; exception handling; program debugging; program diagnostics; programming language semantics; reasoning about programs; Boolean formula; Java byte code; abstract interpretation; binary decision diagram; manual annotation verification; nonnull annotation inference; program correctness proving; program exception fault; program segmentation fault; program semantics; run-time program checking; static nullness analysis; Abstracts; Boolean functions; Concrete; Data structures; Java; Null value; Runtime; Software engineering; Testing; Writing; Boolean formulas; abstract interpretation; null pointer; nullness analysis; static analysis;
Conference_Titel :
Software Engineering and Formal Methods, 2008. SEFM '08. Sixth IEEE International Conference on
Conference_Location :
Cape Town
Print_ISBN :
978-0-7695-3437-4
DOI :
10.1109/SEFM.2008.8