|
ABSTRACT
We present a non-null annotations inferencer for the Java bytecode language. We previously proposed an analysis to infer non-null annotations and proved it soundness and completeness with respect to a state of the art type system. This paper proposes extensions to our former analysis in order to deal with the Java bytecode language. We have implemented both analyses and compared their behaviour on several benchmarks. The results show a substantial improvement in the precision and, despite being a whole-program analysis, production applications can be analyzed within minutes.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Artho, C., and Havelund, K. Applying Jlint to space exploration software. In Proc. of the 5th International Conference on Verification, Model Checking and Abstract Interpretation (VMCAI 2004) (2004), vol. 2937 of LNCS, Springer, pp. 297--308.
|
| |
2
|
Cannasse, N., Turpin, T., Hubert, L., Besson, F., and André, E. JavaLib. Inria, March 2007. javalib.gforge.inria.fr.
|
| |
3
|
Chalin, P., and James, P. R. Non-null references by default in Java: Alleviating the nullity annotation burden. In Proc. of European Conference on Object-Oriented Programming (ECOOP'07) (2007), vol. 4609 of LNCS, Springer, pp. 227--247.
|
 |
4
|
|
 |
5
|
|
| |
6
|
Cok, D. R., and Kiniry, J. R. Esc/java2.
|
| |
7
|
Eclipse 3.3 (europa). www.eclipse.org.
|
| |
8
|
Ekman, T. Extensible Compiler Construction. PhD thesis, Lund University, June 2006.
|
| |
9
|
Ekman, T., and Hedin, G. Pluggable checking and inferencing of non-null types for Java. Journal of Object Technology 6, 9 (October 2007), 455--475. Special Issue: TOOLS EUROPE 2007.
|
| |
10
|
Fähndrich, M., and Leino, K. R. M. Declaring and checking non-null types in an object-oriented language. In Proc. of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'03) (2003), vol. 2021 of LNCS, Springer-Verlag, pp. 302--312.
|
 |
11
|
|
| |
12
|
|
| |
13
|
The gnu compiler for the java programming language, 2007. gcc.gnu.org/java.
|
 |
14
|
David Hovemeyer , William Pugh, Finding more null pointer bugs, but not too many, Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, p.9-14, June 13-14, 2007, San Diego, California, USA
[doi> 10.1145/1251535.1251537]
|
 |
15
|
|
| |
16
|
|
| |
17
|
Javacc. javacc.dev.java.net.
|
| |
18
|
Jess. herzberg.ca.sandia.gov.
|
| |
19
|
Julia. profs.sci.univr.it/~spoto/julia/.
|
| |
20
|
Leino, K. R. M., Saxe, J. B., and Stata, R. ESC/Java user's manual, technical note 2000--002 ed. Compaq Systems Research Center, October 2000.
|
| |
21
|
Leroy, X., Doligez, D., Garrigue, J., Rémy, D., and Vouillon, J. The Objective Caml system. Inria, May 2007. caml.inria.fr/ocaml/.
|
| |
22
|
Male, C., Pearce, D. J., Potanin, A., and Dymnikov, C. Java bytecode verification for @NonNull types. In Proc. of the Conference on Compiler Construction (CC'08) (2008), Springer-Verlag.
|
| |
23
|
|
 |
24
|
Matthew M. Papi , Mahmood Ali , Telmo Luis Correa, Jr. , Jeff H. Perkins , Michael D. Ernst, Practical pluggable types for java, Proceedings of the 2008 international symposium on Software testing and analysis, July 20-24, 2008, Seattle, WA, USA
[doi> 10.1145/1390630.1390656]
|
 |
25
|
|
| |
26
|
SPEC JVM98 benchmarks. www.spec.org/jvm98.
|
| |
27
|
|
| |
28
|
Tightvnc. www.tightvnc.com.
|
| |
29
|
Raja Vallée-Rai , Phong Co , Etienne Gagnon , Laurie Hendren , Patrick Lam , Vijay Sundaresan, Soot - a Java bytecode optimization framework, Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research, p.13, November 08-11, 1999, Mississauga, Ontario, Canada
|
|