Package it.unive.lisa

Class DefaultConfiguration


  • public class DefaultConfiguration
    extends it.unive.lisa.conf.LiSAConfiguration
    A default LiSAConfiguration that already has a CallGraph and InterproceduralAnalysis set. This class also has static methods to instantiate default implementations of other analysis components.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class it.unive.lisa.conf.LiSAConfiguration

        it.unive.lisa.conf.LiSAConfiguration.DescendingPhaseType, it.unive.lisa.conf.LiSAConfiguration.GraphType
    • 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
    • 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 default AbstractState that can be used to run analyses.
      static RTACallGraph defaultCallGraph()
      Yields a default CallGraph that can be used to run analyses.
      static MonolithicHeap defaultHeapDomain()
      Yields a default HeapDomain that can be used to run analyses.
      static <A extends it.unive.lisa.analysis.AbstractState<A>>
      ModularWorstCaseAnalysis<A>
      defaultInterproceduralAnalysis()
      Yields a default InterproceduralAnalysis that can be used to run analyses.
      static it.unive.lisa.analysis.nonrelational.value.TypeEnvironment<InferredTypes> defaultTypeDomain()
      Yields a default TypeDomain that can be used to run analyses.
      static it.unive.lisa.analysis.nonrelational.value.ValueEnvironment<Interval> defaultValueDomain()
      Yields a default ValueDomain 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 of SimpleAbstractState uilt using the given sub-domains.
      • Methods inherited from class it.unive.lisa.conf.LiSAConfiguration

        toPropertyBag, toString
      • Methods inherited from class it.unive.lisa.conf.BaseConfiguration

        equals, hashCode
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Method Detail

      • defaultCallGraph

        public static RTACallGraph defaultCallGraph()
        Yields a default CallGraph 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 default InterproceduralAnalysis that can be used to run analyses.
        Type Parameters:
        A - the kind of AbstractState to run during the analysis
        Returns:
        the interprocedural analysis
      • defaultTypeDomain

        public static it.unive.lisa.analysis.nonrelational.value.TypeEnvironment<InferredTypes> defaultTypeDomain()
        Yields a default TypeDomain that can be used to run analyses.
        Returns:
        the typedomain
      • defaultValueDomain

        public static it.unive.lisa.analysis.nonrelational.value.ValueEnvironment<Interval> defaultValueDomain()
        Yields a default ValueDomain that can be used to run analyses.
        Returns:
        the value domain
      • defaultHeapDomain

        public static MonolithicHeap defaultHeapDomain()
        Yields a default HeapDomain 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 of SimpleAbstractState uilt using the given sub-domains.
        Type Parameters:
        H - the type of HeapDomain
        V - the type of ValueDomain
        T - the type of TypeDomain
        Parameters:
        heap - the HeapDomain to embed in the returned state
        value - the ValueDomain to embed in the returned state
        type - the TypeDomain 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 default AbstractState that can be used to run analyses.
        Returns:
        the abstract state