Abstract Interpretation of Java Bytecode for Immutability Analysis
- 1 Hochschule Konstanz University of Applied Sciences, Germany
Abstract
Even though immutability is a desirable property, especially in a multi-threaded environment, implementing immutable Java classes is surprisingly hard because of a lack of language support. We present a static analysis tool using abstract bytecode interpretation that checks Java classes for compliance with a set of rules that together constitute state-based immutability. Being realized as a Find Bugs plug in, the tool can easily be integrated into most IDEs and hence the software development process. Our evaluation on a large, real world codebase shows that the average run-time effort for a single class is in the range of a few milliseconds, with only a very few statistical spikes.
DOI: https://doi.org/10.3844/jcssp.2016.314.322
Copyright: © 2016 Oliver Haase. This is an open access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.
- 3,710 Views
- 2,732 Downloads
- 0 Citations
Download
Keywords
- Immutability
- Abstract Interpretation
- Bytecode