public class ArgCpa extends SimpleCpa
AbstractStates
are computed. Its nodes represented by ArgAbstractStates wrap the traced analysis
states and references their parents, i.e., AbstractState
which may have influenced their value. ARG is constructed by introducing wrapper CPA operators
handling the parent lists while being transparent for the traced analysis through
interface delegation. Thus, the traced analysis can be ARG-unaware if it preserves
some degree of transparency, i.e., all its relevant behavior is defined through its CPA operators.| Constructor and Description |
|---|
ArgCpa(ArgAbstractDomain argAbstractDomain,
ArgTransferRelation argTransferRelation,
ArgMergeOperator argMergeOperator,
ArgStopOperator argStopOperator,
ArgPrecisionAdjustment argPrecisionAdjustment)
Create an ARG CPA for the given CPA components.
|
ArgCpa(ConfigurableProgramAnalysis wrappedCpa,
ArgAbstractStateFactory argAbstractStateFactory)
Create an ARG CPA for the given inner CPA.
|
getAbstractDomain, getMergeOperator, getPrecisionAdjustment, getStopOperator, getTransferRelationpublic ArgCpa(ConfigurableProgramAnalysis wrappedCpa, ArgAbstractStateFactory argAbstractStateFactory)
wrappedCpa - a CPA to be wrappedargAbstractStateFactory - an ARG node factorypublic ArgCpa(ArgAbstractDomain argAbstractDomain, ArgTransferRelation argTransferRelation, ArgMergeOperator argMergeOperator, ArgStopOperator argStopOperator, ArgPrecisionAdjustment argPrecisionAdjustment)
argAbstractDomain - an ARG abstract domainargTransferRelation - an ARG transfer relationargMergeOperator - an ARG merge operatorargStopOperator - an ARG stop operatorargPrecisionAdjustment - an ARG precision adjustment