Interface NonRelationalDomain<T extends NonRelationalDomain<T,E,F>,E extends SymbolicExpression,F extends Environment<F,E,T>>
-
- Type Parameters:
T
- the concrete type of the domainE
- the type of expressions that this domain can evaluateF
- the type of functional lattice that is used in conjunction with this domain
- All Superinterfaces:
Lattice<T>
,NonRelationalElement<T,E,F>
,SemanticEvaluator
,StructuredObject
- All Known Subinterfaces:
BaseNonRelationalTypeDomain<T>
,BaseNonRelationalValueDomain<T>
,NonRelationalHeapDomain<T>
,NonRelationalTypeDomain<T>
,NonRelationalValueDomain<T>
public interface NonRelationalDomain<T extends NonRelationalDomain<T,E,F>,E extends SymbolicExpression,F extends Environment<F,E,T>> extends NonRelationalElement<T,E,F>
ANonRelationalElement
that models the standard concept of non-relational abstract domain, and that is able to compute the value of aSymbolicExpression
s of typeE
by knowing the values of all program variables. Instances of this class can be wrapped inside anFunctionalLattice
to represent abstract values of individualIdentifier
s.
-
-
Field Summary
-
Fields inherited from interface it.unive.lisa.analysis.Lattice
BOTTOM_STRING, TOP_STRING
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description T
eval(E expression, F environment, ProgramPoint pp, SemanticOracle oracle)
Evaluates aSymbolicExpression
, assuming that the values of program variables are the ones stored inenvironment
.-
Methods inherited from interface it.unive.lisa.analysis.Lattice
bottom, glb, isBottom, isTop, lessOrEqual, lub, narrowing, top, widening
-
Methods inherited from interface it.unive.lisa.analysis.nonrelational.NonRelationalElement
assume, fixedVariable, satisfies, unknownVariable
-
Methods inherited from interface it.unive.lisa.analysis.SemanticEvaluator
canProcess
-
Methods inherited from interface it.unive.lisa.util.representation.StructuredObject
representation
-
-
-
-
Method Detail
-
eval
T eval(E expression, F environment, ProgramPoint pp, SemanticOracle oracle) throws SemanticException
Evaluates aSymbolicExpression
, assuming that the values of program variables are the ones stored inenvironment
.- Parameters:
expression
- the expression to evaluateenvironment
- the environment containing the values of program variables for the evaluationpp
- the program point that where this operation is being evaluatedoracle
- the oracle for inter-domain communication- Returns:
- an new instance of this domain, representing the abstract result
of
expression
when evaluated onenvironment
- Throws:
SemanticException
- if something goes wrong during the computation
-
-