Interface InferredValue<T extends InferredValue<T>>
-
- Type Parameters:
T- the concrete type of inferred value
- All Superinterfaces:
Lattice<T>,NonRelationalElement<T,ValueExpression,InferenceSystem<T>>,SemanticEvaluator
- All Known Implementing Classes:
BaseInferredValue,InferredTypes,NonInterference
public interface InferredValue<T extends InferredValue<T>> extends NonRelationalElement<T,ValueExpression,InferenceSystem<T>>
ANonRelationalElementthat can be inferred byInferenceSystems. The main difference between aNonRelationalDomainand anInferredValueis thateval(ValueExpression, InferenceSystem, ProgramPoint)returns instances ofInferredValue.InferredPair, to model the fact that every semantic evaluation also modifies the execution state.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static classInferredValue.InferredPair<T extends InferredValue<T>>A pair of instances ofInferredValue, representing the result of an evaluation in the form of<inferred value, new execution state>.static classInferredValue.InferredPairRepresentationAPairRepresentationfor anInferredValue.InferredPair.
-
Field Summary
-
Fields inherited from interface it.unive.lisa.analysis.Lattice
BOTTOM_REPR, BOTTOM_STRING, TOP_REPR, TOP_STRING
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description InferredValue.InferredPair<T>eval(ValueExpression expression, InferenceSystem<T> environment, ProgramPoint pp)Evaluates aValueExpression, assuming that the values of program variables are the ones stored inenvironment.-
Methods inherited from interface it.unive.lisa.analysis.Lattice
bottom, isBottom, isTop, lessOrEqual, lub, top, widening
-
Methods inherited from interface it.unive.lisa.analysis.nonrelational.NonRelationalElement
assume, glb, representation, satisfies, variable
-
Methods inherited from interface it.unive.lisa.analysis.SemanticEvaluator
canProcess, tracksIdentifiers
-
-
-
-
Method Detail
-
eval
InferredValue.InferredPair<T> eval(ValueExpression expression, InferenceSystem<T> environment, ProgramPoint pp) throws SemanticException
Evaluates aValueExpression, 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 evaluated- Returns:
- an new instance of this domain, representing the abstract result
of
expressionwhen evaluated onenvironment. The returned value is a pair that express both the result of the evaluation and the updated execution state - Throws:
SemanticException- if something goes wrong during the computation
-
-