Abstract
We introduce Cibai a generic static analyzer based on abstract interpretation for the modular analysis and verification of Java classes. We present the abstract semantics and the underlying abstract domain, a combination of an aliasing analysis and octagons. We discuss some implementation issues, and we compare Cibai with similar tools, showing how Cibai achieves a higher level of automation and precision while having comparable performances.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Aggarwal, A., Randall, K.H: Related field analysis. In: PLDI (2001)
Barnett, M., Leino, K.R.M, Schulte, W.: The Spec# programming system: An overview. In: Barthe, G., et al. (eds.) CASSIS 2004. LNCS, vol. 3362, pp. 10–14. Springer, Heidelberg (2005)
Blanchet, B.: Escape Analysis: Correctness proof, implementation and experimental results. In: POPL (1998)
Cok, D.R, Kiniry, J.: ESC/Java 2: Uniting ESC/Java and JML. In: CASSIS (2004)
Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: POPL (1977)
Cousot, P., Cousot, R.: Abstract interpretation frameworks. Journal of Logic and Computation, 2(4) (August 1992)
Ernst, M.D: Dynamically Discovering Likely Program Invariants. PhD thesis, University of Washington (2000)
Ferrara, P.: JAIL: Firewall analysis of JavaCard by Abstract Interpretation. In: EAAI (2006)
Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 2nd edn. Sun Microsystems (2001)
Henkel, J., Diwan, A.: Discovering algebraic specifications from java classes. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, Springer, Heidelberg (2003)
Jacobs, B., van den Berg, J., Huismann, H., van Berkum, M., Hensel, U., Tews, H. Reasoning about Java classes (preliminary report). In: OOPSLA (1998)
Leavens, G.T., Baker, A.L., Ruby, C.: Preliminary Design of JML: A Behavioral Interface Specification Language for Java (November 2003)
Logozzo, F.: Separate compositional analysis of class-based object-oriented languages. In: Rattray, C., Maharaj, S., Shankland, C. (eds.) AMAST 2004. LNCS, vol. 3116, Springer, Heidelberg (2004)
Logozzo, F.: Modular Static Analysis of Object-oriented languages. PhD thesis, École Polytecnique (2004)
Logozzo, F.: Class invariants as abstract interpretation of trace semantics. Computer Languages, Systems and Structures (2007)
Marché, C., Paulin-Mohring, C., Urbain, X.: The Krakatoa tool for certification of Java/Javacard programs. Annotated in JML. J. Log. Algebr. Program, 58(1–2) (2004)
Meyer., B.: Object-Oriented Software Construction. In: Professional Technical Reference, 2nd edn., Prentice Hall, Englewood Cliffs (1997)
Miné, A.: The octagon abstract domain. In: AST (2001)
Pollet, I., Le Charlier, B., Cortesi, A.: Distinctness and sharing domains for static analysis of Java programs. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, Springer, Heidelberg (2001)
Rossignoli, S., Spoto, F.: Detecting Non-Cyclicity by Abstract Compilation into Boolean Functions. In: Emerson, E.A., Namjoshi, K.S. (eds.) VMCAI 2006. LNCS, vol. 3855, Springer, Heidelberg (2005)
Spoto, F.: Julia: A generic static analyser for the java bytecode. In: FTfJP (2005)
Everest Team: Jack, Java Applet Correctness Kit, http://www-sop.inria.fr/everest/soft/Jack/jack.html
Tillmann, N., Chen, F., Schulte, W.: Discovering likely method specifications. Technical report, Microsoft Research (2006)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Logozzo, F. (2007). Cibai: An Abstract Interpretation-Based Static Analyzer for Modular Analysis and Verification of Java Classes. In: Cook, B., Podelski, A. (eds) Verification, Model Checking, and Abstract Interpretation. VMCAI 2007. Lecture Notes in Computer Science, vol 4349. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69738-1_21
Download citation
DOI: https://doi.org/10.1007/978-3-540-69738-1_21
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-69735-0
Online ISBN: 978-3-540-69738-1
eBook Packages: Computer ScienceComputer Science (R0)