Returns the abstract interpreter that should be used for performing the abstract interpretations.
Returns the (initial) domain object that will be used to analyze an entry point.
Returns the (initial) domain object that will be used to analyze an entry point.
The analysis of all entry points may happen concurrently unless
analyzeInParallel is false
.
A project's entry points.
A project's entry points.
In case of a very simple command-line application, the set of entry
points may just consist of the application's main
method.
If, for example, a desktop application with a GUI is to be analyzed, the entry points are usually the application's main method and all those listeners that react on system-level events (mouse move events, keyboard events etc.)
In case of a framework, the set of entry points typically encompasses all non-private constructors, all non-private static methods and all static initializers. Additionally, listeners for system-level events are also entry points.
All methods that are potential entry points.
Analyzes the given project by first determining the entry points of the analysis and then starting an independent analysis for each entry point using its own domain.
Analyzes the given project by first determining the entry points of the analysis and then starting an independent analysis for each entry point using its own domain.
This method is intended to be overridden by subtraits that need to get
hold on the specified analysis parameters. In this case (in the subtrait)
it is recommended to first analyze the parameters and afterwards to call
this method using super.analyze(...)
.
If true
(default) all entry points will be analyzed in parallel.
If true
(default) all entry points will be analyzed in parallel.
Needs to be overridden by subclasses if the entry points should be analyzed sequentially.
Template class for analyzing complete Java projects that use the abstract interpreter.
This trait is intended to be used in combination with the
Analysis
and theAnalysisExecutor
traits to easily create a readily executable analysis (see the Demos project for examples).