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
Bugs within programs typically arise within well-known motifs, such as complex language features or ...
The behavior of software using the Java Reflection API is fundamentally hard to predict by analyzing...
Managed, type-safe languages such as Java are becoming an increasingly competitive alternative for p...
Contains fulltext : 34651.pdf (preprint version ) (Open Access)We extend a Java-li...
. The term "Java" is used to denote two different concepts: the language itself and the re...
Abstract. We extend a Java-like language with immutability specifications and a static type system f...
The Java virtual machine embodies a verifier that performs a set of checks on Java bytecode programs...
We describe our software tool Julia for the static analysis of full Java bytecode, for optimisation ...
Abstract. Concurrent programs that are free of unsynchronized ac-cesses to shared data may still exh...
Abstract. Bytecode rewriting is a portable way of altering Java’s behavior by changing Java classes ...
AbstractAbstract interpretation has been widely used for the analysis of object-oriented languages a...
The behavior of software that uses the Java Reflection API is fundamentally hard to predict by analy...
AbstractExisting Java verifiers perform an iterative data-flow analysis to discover the unambiguous ...
The behavior of software using the Java Reflection API is fundamentally hard to predict by analyzing...
In this paper, it will be explained about an application which able to analyze the quality of java p...
Bugs within programs typically arise within well-known motifs, such as complex language features or ...
The behavior of software using the Java Reflection API is fundamentally hard to predict by analyzing...
Managed, type-safe languages such as Java are becoming an increasingly competitive alternative for p...
Contains fulltext : 34651.pdf (preprint version ) (Open Access)We extend a Java-li...
. The term "Java" is used to denote two different concepts: the language itself and the re...
Abstract. We extend a Java-like language with immutability specifications and a static type system f...
The Java virtual machine embodies a verifier that performs a set of checks on Java bytecode programs...
We describe our software tool Julia for the static analysis of full Java bytecode, for optimisation ...
Abstract. Concurrent programs that are free of unsynchronized ac-cesses to shared data may still exh...
Abstract. Bytecode rewriting is a portable way of altering Java’s behavior by changing Java classes ...
AbstractAbstract interpretation has been widely used for the analysis of object-oriented languages a...
The behavior of software that uses the Java Reflection API is fundamentally hard to predict by analy...
AbstractExisting Java verifiers perform an iterative data-flow analysis to discover the unambiguous ...
The behavior of software using the Java Reflection API is fundamentally hard to predict by analyzing...
In this paper, it will be explained about an application which able to analyze the quality of java p...
Bugs within programs typically arise within well-known motifs, such as complex language features or ...
The behavior of software using the Java Reflection API is fundamentally hard to predict by analyzing...
Managed, type-safe languages such as Java are becoming an increasingly competitive alternative for p...