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 java.lang.Object implements ConfigurableProgramAnalysis<StateT>
TheSimpleCpais aConfigurableProgramAnalysiswrapping its components.
-
-
Constructor Summary
Constructors Constructor Description SimpleCpa(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description @NotNull AbortOperatorgetAbortOperator()@NotNull MergeOperator<StateT>getMergeOperator()Returns the merge operator of this CPA.@NotNull PrecisionAdjustmentgetPrecisionAdjustment()Returns the precision adjustment of this CPA.@NotNull StopOperator<StateT>getStopOperator()Returns the stop operator of this CPA.@NotNull TransferRelation<StateT>getTransferRelation()Returns the transfer relation of this CPA.
-
-
-
Constructor Detail
-
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 Detail
-
getTransferRelation
@NotNull public @NotNull TransferRelation<StateT> getTransferRelation()
Description copied from interface:ConfigurableProgramAnalysisReturns the transfer relation of this CPA.- Specified by:
getTransferRelationin interfaceConfigurableProgramAnalysis<StateT extends AbstractState<StateT>>
-
getMergeOperator
@NotNull public @NotNull MergeOperator<StateT> getMergeOperator()
Description copied from interface:ConfigurableProgramAnalysisReturns the merge operator of this CPA.- Specified by:
getMergeOperatorin interfaceConfigurableProgramAnalysis<StateT extends AbstractState<StateT>>
-
getStopOperator
@NotNull public @NotNull StopOperator<StateT> getStopOperator()
Description copied from interface:ConfigurableProgramAnalysisReturns the stop operator of this CPA.- Specified by:
getStopOperatorin interfaceConfigurableProgramAnalysis<StateT extends AbstractState<StateT>>
-
getPrecisionAdjustment
@NotNull public @NotNull PrecisionAdjustment getPrecisionAdjustment()
Description copied from interface:ConfigurableProgramAnalysisReturns the precision adjustment of this CPA.- Specified by:
getPrecisionAdjustmentin interfaceConfigurableProgramAnalysis<StateT extends AbstractState<StateT>>
-
getAbortOperator
@NotNull public @NotNull AbortOperator getAbortOperator()
- Specified by:
getAbortOperatorin interfaceConfigurableProgramAnalysis<StateT extends AbstractState<StateT>>
-
-