Package proguard.analysis.cpa.defaults
Class SimpleCpa<StateT extends AbstractState<StateT>>
java.lang.Object
proguard.analysis.cpa.defaults.SimpleCpa<StateT>
- Type Parameters:
StateT- The type of the analyzed states.
- All Implemented Interfaces:
ConfigurableProgramAnalysis<StateT>
- Direct Known Subclasses:
CpaWithBamOperators,JvmMemoryLocationCpa,JvmTaintCpa
public class SimpleCpa<StateT extends AbstractState<StateT>>
extends Object
implements ConfigurableProgramAnalysis<StateT>
The
SimpleCpa is a ConfigurableProgramAnalysis wrapping its components.-
Constructor Summary
ConstructorsConstructorDescriptionSimpleCpa(TransferRelation<StateT> transferRelation, MergeOperator<StateT> mergeOperator, StopOperator<StateT> stopOperator) Create a simple CPA with a static precision adjustment.SimpleCpa(TransferRelation<StateT> transferRelation, MergeOperator<StateT> mergeOperator, StopOperator<StateT> stopOperator, PrecisionAdjustment precisionAdjustment, AbortOperator abortOperator) Create a simple CPA fromConfigurableProgramAnalysiscomponents. -
Method Summary
Modifier and TypeMethodDescription@NotNull AbortOperator@NotNull MergeOperator<StateT>Returns the merge operator of this CPA.@NotNull PrecisionAdjustmentReturns the precision adjustment of this CPA.@NotNull StopOperator<StateT>Returns the stop operator of this CPA.@NotNull TransferRelation<StateT>Returns the transfer relation of this CPA.
-
Constructor Details
-
SimpleCpa
public SimpleCpa(TransferRelation<StateT> transferRelation, MergeOperator<StateT> mergeOperator, StopOperator<StateT> stopOperator) Create a simple CPA with a static precision adjustment.- Parameters:
abstractDomain- a join-semilattice ofAbstractStates defining the abstraction level of the analysistransferRelation- a transfer relation specifying how successor states are computedmergeOperator- a merge operator defining how (and whether) the olderAbstractStateshould be updated with the newly discoveredAbstractStatestopOperator- a stop operator deciding whether the successor state should be added to theReachedSetbased on the content of the latter
-
SimpleCpa
public SimpleCpa(TransferRelation<StateT> transferRelation, MergeOperator<StateT> mergeOperator, StopOperator<StateT> stopOperator, PrecisionAdjustment precisionAdjustment, AbortOperator abortOperator) Create a simple CPA fromConfigurableProgramAnalysiscomponents.- Parameters:
abstractDomain- a join-semilattice ofAbstractStates defining the abstraction level of the analysistransferRelation- a transfer relation specifying how successor states are computedmergeOperator- a merge operator defining how (and whether) the olderAbstractStateshould be updated with the newly discoveredAbstractStatestopOperator- a stop operator deciding whether the successor state should be added to theReachedSetbased on the content of the latterprecisionAdjustment- a precision adjustment selecting thePrecisionfor the currently processedAbstractStateconsidering theReachedSetcontentabortOperator- an operator used to terminate the analysis prematurely.
-
-
Method Details
-
getTransferRelation
Description copied from interface:ConfigurableProgramAnalysisReturns the transfer relation of this CPA.- Specified by:
getTransferRelationin interfaceConfigurableProgramAnalysis<StateT extends AbstractState<StateT>>
-
getMergeOperator
Description copied from interface:ConfigurableProgramAnalysisReturns the merge operator of this CPA.- Specified by:
getMergeOperatorin interfaceConfigurableProgramAnalysis<StateT extends AbstractState<StateT>>
-
getStopOperator
Description copied from interface:ConfigurableProgramAnalysisReturns the stop operator of this CPA.- Specified by:
getStopOperatorin interfaceConfigurableProgramAnalysis<StateT extends AbstractState<StateT>>
-
getPrecisionAdjustment
Description copied from interface:ConfigurableProgramAnalysisReturns the precision adjustment of this CPA.- Specified by:
getPrecisionAdjustmentin interfaceConfigurableProgramAnalysis<StateT extends AbstractState<StateT>>
-
getAbortOperator
- Specified by:
getAbortOperatorin interfaceConfigurableProgramAnalysis<StateT extends AbstractState<StateT>>
-