Package com.ibm.wala.fixpoint
Interface IFixedPointStatement<T extends IVariable>
-
- All Superinterfaces:
INodeWithNumber
- All Known Implementing Classes:
AbstractFixedPointSolver.Statement
,AbstractStatement
,AssignEquation
,BasicNullaryStatement
,BasicUnaryStatement
,GeneralStatement
,NullaryStatement
,UnaryStatement
public interface IFixedPointStatement<T extends IVariable> 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 thisIFixedPointStatement
is 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
Intuitively, a statement definition corresponds to an "equation" in dataflow parlance, or a "constraint" in constraint solvers.getRHS()
, and the left hand side variable is obtained by callinggetLHS()
.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description byte
evaluate()
Evaluate this statement, setting a new value for the left-hand side.T
getLHS()
T[]
getRHS()
returns the list of free variables appearing in the right-hand side of the statementboolean
hasVariable(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
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
-
-