Package it.unive.lisa.analysis.value
Interface ValueDomain<D extends ValueDomain<D>>
-
- Type Parameters:
D
- the concrete type of theValueDomain
- All Superinterfaces:
Lattice<D>
,ScopedObject<D>
,SemanticDomain<D,ValueExpression,Identifier>
,StructuredObject
,ValueOracle
- All Known Subinterfaces:
TypeDomain<T>
- All Known Implementing Classes:
DataflowDomain
,DefiniteDataflowDomain
,InferenceSystem
,PossibleDataflowDomain
,TypeEnvironment
,ValueEnvironment
public interface ValueDomain<D extends ValueDomain<D>> extends ValueOracle, SemanticDomain<D,ValueExpression,Identifier>, Lattice<D>
A semantic domain that can evaluate the semantic of statements that operate on values, and not on memory locations. A value domain can handle instances ofValueExpression
s, and manage identifiers that areVariable
s.
-
-
Field Summary
-
Fields inherited from interface it.unive.lisa.analysis.Lattice
BOTTOM_STRING, TOP_STRING
-
-
Method Summary
All Methods Instance Methods Default Methods Modifier and Type Method Description default D
applyReplacement(HeapSemanticOperation.HeapReplacement r, ProgramPoint pp, SemanticOracle oracle)
Applies a substitution of identifiers that is caused by a modification of the abstraction provided in theHeapDomain
of the analysis.-
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.ScopedObject
popScope, pushScope
-
Methods inherited from interface it.unive.lisa.analysis.SemanticDomain
assign, assume, forgetIdentifier, forgetIdentifiers, forgetIdentifiersIf, getAllDomainInstances, getDomainInstance, knowsIdentifier, satisfies, smallStepSemantics
-
Methods inherited from interface it.unive.lisa.util.representation.StructuredObject
representation
-
-
-
-
Method Detail
-
applyReplacement
default D applyReplacement(HeapSemanticOperation.HeapReplacement r, ProgramPoint pp, SemanticOracle oracle) throws SemanticException
Applies a substitution of identifiers that is caused by a modification of the abstraction provided in theHeapDomain
of the analysis. A substitution is composed by a list ofHeapSemanticOperation.HeapReplacement
instances, that must be applied in order.- Parameters:
r
- the replacement to applypp
- the program point that where this operation is being evaluatedoracle
- the oracle for inter-domain communication- Returns:
- the value domain instance modified by the substitution
- Throws:
SemanticException
- if an error occurs during the computation
-
-