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.LiSAConfiguration
A defaultLiSAConfiguration
that already has aCallGraph
andInterproceduralAnalysis
set. 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()
asCallGraph
anddefaultInterproceduralAnalysis()
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 defaultAbstractState
that can be used to run analyses.static RTACallGraph
defaultCallGraph()
Yields a defaultCallGraph
that can be used to run analyses.static MonolithicHeap
defaultHeapDomain()
Yields a defaultHeapDomain
that can be used to run analyses.static <A extends it.unive.lisa.analysis.AbstractState<A>>
ModularWorstCaseAnalysis<A>defaultInterproceduralAnalysis()
Yields a defaultInterproceduralAnalysis
that can be used to run analyses.static it.unive.lisa.analysis.nonrelational.value.TypeEnvironment<InferredTypes>
defaultTypeDomain()
Yields a defaultTypeDomain
that can be used to run analyses.static it.unive.lisa.analysis.nonrelational.value.ValueEnvironment<Interval>
defaultValueDomain()
Yields a defaultValueDomain
that 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 ofSimpleAbstractState
uilt using the given sub-domains.
-
-
-
Constructor Detail
-
DefaultConfiguration
public DefaultConfiguration()
Builds a default configuration, havingdefaultCallGraph()
asCallGraph
anddefaultInterproceduralAnalysis()
asInterproceduralAnalysis
.
-
-
Method Detail
-
defaultCallGraph
public static RTACallGraph defaultCallGraph()
Yields a defaultCallGraph
that 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 defaultInterproceduralAnalysis
that can be used to run analyses.- Type Parameters:
A
- the kind ofAbstractState
to run during the analysis- Returns:
- the interprocedural analysis
-
defaultTypeDomain
public static it.unive.lisa.analysis.nonrelational.value.TypeEnvironment<InferredTypes> defaultTypeDomain()
Yields a defaultTypeDomain
that can be used to run analyses.- Returns:
- the typedomain
-
defaultValueDomain
public static it.unive.lisa.analysis.nonrelational.value.ValueEnvironment<Interval> defaultValueDomain()
Yields a defaultValueDomain
that can be used to run analyses.- Returns:
- the value domain
-
defaultHeapDomain
public static MonolithicHeap defaultHeapDomain()
Yields a defaultHeapDomain
that 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 ofSimpleAbstractState
uilt using the given sub-domains.- Type Parameters:
H
- the type ofHeapDomain
V
- the type ofValueDomain
T
- the type ofTypeDomain
- Parameters:
heap
- theHeapDomain
to embed in the returned statevalue
- theValueDomain
to embed in the returned statetype
- theTypeDomain
to 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 defaultAbstractState
that can be used to run analyses.- Returns:
- the abstract state
-
-