Package it.unive.lisa
Class DefaultConfiguration
- java.lang.Object
-
- it.unive.lisa.conf.BaseConfiguration
-
- it.unive.lisa.conf.LiSAConfiguration
-
- it.unive.lisa.DefaultConfiguration
-
public class DefaultConfiguration extends it.unive.lisa.conf.LiSAConfigurationA defaultLiSAConfigurationthat already has aCallGraphandInterproceduralAnalysisset. This class also has static methods to instantiate default implementations of other analysis components.
-
-
Field Summary
-
Fields inherited from class it.unive.lisa.conf.LiSAConfiguration
abstractState, analysisGraphs, callGraph, DEFAULT_GLB_THRESHOLD, DEFAULT_WIDENING_THRESHOLD, descendingPhaseType, dumpForcesUnwinding, fixpointWorkingSet, glbThreshold, hotspots, interproceduralAnalysis, jsonOutput, openCallPolicy, optimize, recursionWideningThreshold, semanticChecks, serializeInputs, serializeResults, syntacticChecks, useWideningPoints, wideningThreshold, workdir
-
-
Constructor Summary
Constructors Constructor Description DefaultConfiguration()Builds a default configuration, havingdefaultCallGraph()asCallGraphanddefaultInterproceduralAnalysis()asInterproceduralAnalysis.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static SimpleAbstractState<MonolithicHeap,it.unive.lisa.analysis.nonrelational.value.ValueEnvironment<Interval>,it.unive.lisa.analysis.nonrelational.value.TypeEnvironment<InferredTypes>>defaultAbstractState()Yields a defaultAbstractStatethat can be used to run analyses.static RTACallGraphdefaultCallGraph()Yields a defaultCallGraphthat can be used to run analyses.static MonolithicHeapdefaultHeapDomain()Yields a defaultHeapDomainthat can be used to run analyses.static <A extends it.unive.lisa.analysis.AbstractState<A>>
ModularWorstCaseAnalysis<A>defaultInterproceduralAnalysis()Yields a defaultInterproceduralAnalysisthat can be used to run analyses.static it.unive.lisa.analysis.nonrelational.value.TypeEnvironment<InferredTypes>defaultTypeDomain()Yields a defaultTypeDomainthat can be used to run analyses.static it.unive.lisa.analysis.nonrelational.value.ValueEnvironment<Interval>defaultValueDomain()Yields a defaultValueDomainthat can be used to run analyses.static <H extends it.unive.lisa.analysis.heap.HeapDomain<H>,V extends it.unive.lisa.analysis.value.ValueDomain<V>,T extends it.unive.lisa.analysis.type.TypeDomain<T>>
SimpleAbstractState<H,V,T>simpleState(H heap, V value, T type)Yields an instance ofSimpleAbstractStateuilt using the given sub-domains.
-
-
-
Constructor Detail
-
DefaultConfiguration
public DefaultConfiguration()
Builds a default configuration, havingdefaultCallGraph()asCallGraphanddefaultInterproceduralAnalysis()asInterproceduralAnalysis.
-
-
Method Detail
-
defaultCallGraph
public static RTACallGraph defaultCallGraph()
Yields a defaultCallGraphthat can be used to run analyses.- Returns:
- the call graph
-
defaultInterproceduralAnalysis
public static <A extends it.unive.lisa.analysis.AbstractState<A>> ModularWorstCaseAnalysis<A> defaultInterproceduralAnalysis()
Yields a defaultInterproceduralAnalysisthat can be used to run analyses.- Type Parameters:
A- the kind ofAbstractStateto run during the analysis- Returns:
- the interprocedural analysis
-
defaultTypeDomain
public static it.unive.lisa.analysis.nonrelational.value.TypeEnvironment<InferredTypes> defaultTypeDomain()
Yields a defaultTypeDomainthat can be used to run analyses.- Returns:
- the typedomain
-
defaultValueDomain
public static it.unive.lisa.analysis.nonrelational.value.ValueEnvironment<Interval> defaultValueDomain()
Yields a defaultValueDomainthat can be used to run analyses.- Returns:
- the value domain
-
defaultHeapDomain
public static MonolithicHeap defaultHeapDomain()
Yields a defaultHeapDomainthat can be used to run analyses.- Returns:
- the heap domain
-
simpleState
public static <H extends it.unive.lisa.analysis.heap.HeapDomain<H>,V extends it.unive.lisa.analysis.value.ValueDomain<V>,T extends it.unive.lisa.analysis.type.TypeDomain<T>> SimpleAbstractState<H,V,T> simpleState(H heap, V value, T type)
Yields an instance ofSimpleAbstractStateuilt using the given sub-domains.- Type Parameters:
H- the type ofHeapDomainV- the type ofValueDomainT- the type ofTypeDomain- Parameters:
heap- theHeapDomainto embed in the returned statevalue- theValueDomainto embed in the returned statetype- theTypeDomainto embed in the returned state- Returns:
- the abstract state
-
defaultAbstractState
public static SimpleAbstractState<MonolithicHeap,it.unive.lisa.analysis.nonrelational.value.ValueEnvironment<Interval>,it.unive.lisa.analysis.nonrelational.value.TypeEnvironment<InferredTypes>> defaultAbstractState()
Yields a defaultAbstractStatethat can be used to run analyses.- Returns:
- the abstract state
-
-