Abstract Interpretation of Java Bytecode for Immutability Analysis
- 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.
Author: | Oliver HaaseGND |
---|---|
DOI: | https://doi.org/10.3844/jcssp.2016.314.322 |
ISSN: | 1549-3636 |
ISSN: | 1552-6607 |
Parent Title (English): | Journal of Computer Science |
Volume: | 12 |
Document Type: | Article |
Language: | English |
Year of Publication: | 2016 |
Release Date: | 2018/11/21 |
Tag: | Immutability; Abstract interpretation; Bytecode |
Issue: | 7 |
First Page: | 314 |
Last Page: | 322 |
Open Access?: | Ja |