All Classes Interface Summary Class Summary
Class |
Description |
AllocationSite |
A heap identifier that track also the source location where it has been
allocated and a field (optional).
|
AllocationSiteBasedAnalysis<A extends AllocationSiteBasedAnalysis<A>> |
A base class for heap analyses based on the allocation sites of the objects
and arrays they track, namely the position of the code where heap locations
are generated.
|
AllocationSites |
|
AvailableExpressions |
An implementation of the available expressions dataflow analysis, that
focuses only on the expressions that are stored into some variable.
|
BackwardModularWorstCaseAnalysis<A extends it.unive.lisa.analysis.AbstractState<A>> |
A worst case modular analysis were all cfg calls are treated as open calls.
|
BaseCasesFinder<A extends it.unive.lisa.analysis.AbstractState<A>> |
A recursion solver that applies a single iteration of the recursion starting
from bottom and using top as entry state for the recursion.
|
BaseTaint<T extends BaseTaint<T>> |
A taint analysis, that is, an information-flow analysis tracking only
explicit flows.
|
Branching |
A TraceToken representing the traversal of a if-then-else condition,
associated with the branch taken.
|
Brick |
The brick string abstract domain.
|
Bricks |
The bricks string abstract domain.
|
CallGraphBasedAnalysis<A extends it.unive.lisa.analysis.AbstractState<A>> |
An interprocedural analysis based on a call graph.
|
CartesianProduct<C extends CartesianProduct<C,T1,T2,E,I>,T1 extends it.unive.lisa.analysis.SemanticDomain<T1,E,I> & it.unive.lisa.analysis.Lattice<T1>,T2 extends it.unive.lisa.analysis.SemanticDomain<T2,E,I> & it.unive.lisa.analysis.Lattice<T2>,E extends it.unive.lisa.symbolic.SymbolicExpression,I extends it.unive.lisa.symbolic.value.Identifier> |
A generic Cartesian product abstract domain between two non-communicating
SemanticDomain s (i.e., no exchange of information between the
abstract domains), assigning the same Identifier s and handling
instances of the same SymbolicExpression s.
|
CHACallGraph |
A call graph constructed following the Class Hierarchy Analysis as defined
in: Frank Tip and Jens Palsberg.
|
CharInclusion |
The suffix string abstract domain.
|
ConstantPropagation |
An implementation of the overflow-insensitive constant propagation dataflow
analysis, that focuses only on integers.
|
ContainsCharProvider |
|
ContextBasedAnalysis<A extends it.unive.lisa.analysis.AbstractState<A>> |
A context sensitive interprocedural analysis.
|
ContextInsensitiveToken |
A context sensitive token that is always the same (aka, do not track any
information about the call stack).
|
ContextSensitivityToken |
A token for interprocedural analysis that tunes the level of context
sensitivity.
|
DefaultConfiguration |
A default LiSAConfiguration that already has a CallGraph and
InterproceduralAnalysis set.
|
ExecutionTrace |
An execution trace, made of TraceToken s representing the
intraprocedural control-flow instructions that have been traversed up to now.
|
FieldSensitivePointBasedHeap |
|
FSA |
A class that represent the Finite State Automaton domain for strings,
exploiting a SimpleAutomaton .
|
FullStackToken |
A context sensitive token representing an entire call chain, regardless of
its length.
|
HeapAllocationSite |
A heap allocation site, that is an allocation site pointing to something
allocated in the dynamic memory, the heap.
|
IndexFinder |
An algorithm that finds all possible indexes of the first occurrences of an
automaton into another one.
|
InferredTypes |
An InferredValue holding a set of Type s, representing the
inferred runtime types of an Expression .
|
IntegerConstantPropagation |
The overflow-insensitive basic integer constant propagation abstract domain,
tracking if a certain integer value has constant value or not, implemented as
a BaseNonRelationalValueDomain , handling top and bottom values for
the expression evaluation and bottom values for the expression
satisfiability.
|
Interval |
The overflow-insensitive interval abstract domain, approximating integer
values as the minimum integer interval containing them.
|
KDepthToken |
A context sensitive token representing an entire call chain up to a fixed
length k , specified in the singleton creation
( KDepthToken.getSingleton(int) ).
|
LastCallToken |
A context sensitive token representing a single ScopeToken .
|
LiSAFactory |
An utility class for instantiating analysis components, that is, modular
pieces of the analysis that have several implementations.
|
LiSAFactory.ConfigurableComponent |
An analysis component that can be configured, that is, it has more than
one implementation that can be modularly integrated into the analysis.
|
Liveness |
An implementation of the liveness dataflow analysis, that determines which
values might be used later on in the program.
|
LoopIteration |
A TraceToken representing the traversal of a loop condition at the
beginning of a specific iteration.
|
LoopSummary |
A TraceToken representing the traversal of a loop condition,
summarizing all possible iterations.
|
ModularWorstCaseAnalysis<A extends it.unive.lisa.analysis.AbstractState<A>> |
A worst case modular analysis were all cfg calls are treated as open calls.
|
MonolithicHeap |
A monolithic heap implementation that abstracts all heap locations to a
unique identifier.
|
MonolithicHeap.Rewriter |
|
NonInterference |
The type-system based implementation of the non interference analysis.
|
NonRedundantPowerset<C extends NonRedundantPowerset<C,T,E,I>,T extends it.unive.lisa.analysis.SemanticDomain<T,E,I> & it.unive.lisa.analysis.Lattice<T>,E extends it.unive.lisa.symbolic.SymbolicExpression,I extends it.unive.lisa.symbolic.value.Identifier> |
This abstract class generalize the abstract domain lattice whose domain is
the set of all the non redundant set in the power set of the domain of
another lattice (in this case the other lattice is <T> ).
|
NonRedundantPowersetOfBaseNonRelationalValueDomain<C extends NonRedundantPowersetOfBaseNonRelationalValueDomain<C,E>,E extends it.unive.lisa.analysis.nonrelational.value.BaseNonRelationalValueDomain<E>> |
This abstract class generalize the concept of an abstract domain whose domain
is the finite non redundant subset of the domain of another lattice (in this
case the other lattice is of type E).
|
NonRedundantPowersetOfInterval |
The finite non redundant powerset of Interval abstract domain
approximating integer values as a non redundant set of interval.
|
NonRelationalValueCartesianProduct<C extends NonRelationalValueCartesianProduct<C,T1,T2>,T1 extends it.unive.lisa.analysis.nonrelational.value.NonRelationalValueDomain<T1>,T2 extends it.unive.lisa.analysis.nonrelational.value.NonRelationalValueDomain<T2>> |
A generic Cartesian product abstract domain between two non-communicating
NonRelationalValueDomain s (i.e., no exchange of information between
the abstract domains), assigning the same Identifier s and handling
instances of the same SymbolicExpression s.
|
Parity |
The overflow-insensitive Parity abstract domain, tracking if a numeric value
is even or odd, implemented as a BaseNonRelationalValueDomain ,
handling top and bottom values for the expression evaluation and bottom
values for the expression satisfiability.
|
Pentagon |
/** The pentagons abstract domain, a weakly relational numeric abstract
domain.
|
PointBasedHeap |
|
Prefix |
The prefix string abstract domain.
|
ReachingDefinitions |
An implementation of the reaching definition dataflow analysis.
|
Recursion<A extends it.unive.lisa.analysis.AbstractState<A>> |
A recursion happening in the program.
|
RecursionSolver<A extends it.unive.lisa.analysis.AbstractState<A>> |
A recursion solver that applies the iterates of the recursion starting from
bottom.
|
RegexAutomaton |
A class that describes an generic automaton(dfa, nfa, epsilon nfa) using an
alphabet of strings, extended with a special symbol for statically unknown
ones.
|
RTACallGraph |
A call graph constructed following the Rapid Type Analysis as defined in:
Frank Tip and Jens Palsberg.
|
Sign |
The basic overflow-insensitive Sign abstract domain, tracking zero, strictly
positive and strictly negative integer values, implemented as a
BaseNonRelationalValueDomain , handling top and bottom values for the
expression evaluation and bottom values for the expression satisfiability.
|
SimpleAbstractState<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>> |
An abstract state of the analysis, composed by a heap state modeling the
memory layout, a value state modeling values of program variables and memory
locations, and a type state that can give types to expressions knowing the
ones of variables.
The interaction between heap and value/type domains follows the one defined
in this
paper.
|
SimpleAutomaton |
A class that describes an generic automaton(dfa, nfa, epsilon nfa) using a
standard alphabet of single characters.
|
Stability<V extends it.unive.lisa.analysis.value.ValueDomain<V>> |
Implementation of the stability abstract domain (yet to appear publicly).
|
StackAllocationSite |
A stack allocation site, that is an allocation site pointing to something
that has been allocated in the stack.
|
StaticTypes |
An InferredValue holding a set of Type s, representing the
inferred runtime types of an Expression .
|
StringConstantPropagation |
The string constant propagation abstract domain, tracking if a certain string
value has constant value or not.
|
StringReplacer |
An algorithm that replaces strings across all paths of an automaton.
|
StringSearcher |
An algorithm that searches strings across all paths of an automaton.
|
StringSymbol |
A TransitionSymbol for single characters, represented as strings for
simple modeling of epsilon.
|
SubstringDomain |
The substring relational abstract domain, tracking relation between string
expressions.
|
SubstringDomainWithConstants |
The substring relational abstract domain (see SubstringDomain )
enriched with string constant propagation.
|
Suffix |
The suffix string abstract domain.
|
Taint |
A BaseTaint implementation with only two level of taintedness: clean
and tainted.
|
Tarsis |
A class that represent the Tarsis domain for strings, exploiting a
RegexAutomaton .
|
ThreeLevelsTaint |
A BaseTaint implementation with three level of taintedness: clean,
tainted and top.
|
TracePartitioning<A extends it.unive.lisa.analysis.AbstractState<A>> |
The trace partitioning abstract domain that splits execution traces to
increase precision of the analysis.
|
TraceToken |
A token of an ExecutionTrace , tracking the traversal of a condition
represented by a ProgramPoint .
|
Trend |
A single-variable numerical trend.
|
TypeBasedHeap |
A type-based heap implementation that abstracts heap locations depending on
their types, i.e., all the heap locations with the same type are abstracted
into a single unique identifier.
|
TypeBasedHeap.Rewriter |
|
UpperBounds |
The upper bounds abstract domain.
|
ValueCartesianProduct<T1 extends it.unive.lisa.analysis.value.ValueDomain<T1>,T2 extends it.unive.lisa.analysis.value.ValueDomain<T2>> |
A Cartesian product between two non-communicating ValueDomain s (i.e.,
no exchange of information between the abstract domains) assigning
Identifier s and handling ValueExpression s.
|
ValueNonRedundantSet<T extends it.unive.lisa.analysis.value.ValueDomain<T>> |
This class expands the NonRedundantPowerset class fixing the type of
elements in the set to be ValueDomain , the SymbolicExpression
processable to be ValueExpression and the manageable
Identifier to be all the Identifier .
|