Implementation of an abstract interpretation (ai) framework – also referred to as OPAL.
Implementation of an abstract interpretation (ai) framework – also referred to as OPAL.
Please note, that OPAL/the abstract interpreter just refers to the classes and traits
defined in this package (ai
). The classes and traits defined in the sub-packages
(in particular in domain
) are not considered to be part of the core of OPAL/the
abstract interpreter.
This framework assumes that the analyzed bytecode is valid; i.e., the JVM's
bytecode verifier would be able to verify the code. Furthermore, load-time errors
(e.g., LinkageErrors
) are – by default – completely ignored to facilitate the
analysis of parts of a project. In general, if the presented bytecode is not valid,
the result is undefined (i.e., OPAL may report meaningless results, crash or run
indefinitely).
org.opalj.ai.Domain - The core interface between the abstract interpretation framework and the abstract domain that is responsible for performing the abstract computations.
org.opalj.ai.AI - Implements the abstract interpreter that processes a methods code and uses an analysis-specific domain to perform the abstract computations.
Defines implicit conversions to wrap some types of analyses such that they generate results of type org.opalj.br.analyses.ReportableAnalysisResult.
Common definitions related to the definition and processing of three address code.