Package com.ibm.wala.fixpoint
Interface IFixedPointStatement<T extends IVariable<T>>
-
- All Superinterfaces:
INodeWithNumber
- All Known Implementing Classes:
AbstractFixedPointSolver.Statement,AbstractStatement,BasicNullaryStatement,BasicUnaryStatement,GeneralStatement,NullaryStatement,UnaryStatement
public interface IFixedPointStatement<T extends IVariable<T>> extends INodeWithNumber
The general form of a statement definition in an iterative solver is: x >= term, where term can be any complex expression whose free variables are among the IVariables of the constraint system thisIFixedPointStatementis part of (x represents the left-hand side of the constraint). The interpretation of term (the right-hand side of the constraint) must be monotone.The list of free variables in term is obtained by invoking
getRHS(), and the left hand side variable is obtained by callinggetLHS(). Intuitively, a statement definition corresponds to an "equation" in dataflow parlance, or a "constraint" in constraint solvers.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description byteevaluate()Evaluate this statement, setting a new value for the left-hand side.@Nullable TgetLHS()T[]getRHS()returns the list of free variables appearing in the right-hand side of the statementbooleanhasVariable(T v)Does this statement definition contain an appearance of a given variable?-
Methods inherited from interface com.ibm.wala.util.graph.INodeWithNumber
getGraphNodeId, setGraphNodeId
-
-
-
-
Method Detail
-
getLHS
@Nullable T getLHS()
- Returns:
- the left-hand side of this statement.
-
getRHS
T[] getRHS()
returns the list of free variables appearing in the right-hand side of the statement
-
evaluate
byte evaluate()
Evaluate this statement, setting a new value for the left-hand side. The return value is one of the following:
-
hasVariable
boolean hasVariable(T v)
Does this statement definition contain an appearance of a given variable?- Parameters:
v- the variable in question
-
-