Interface ITransferFunctionProvider<T,V extends IVariable<V>>
- Type Parameters:
T
- type of node in the graphV
- type of abstract states computed
- All Known Implementing Classes:
ExceptionTransferFunctionProvider
,PrefixTransferFunctionProvider
public interface ITransferFunctionProvider<T,V extends IVariable<V>>
The
DataflowSolver
builds system over graphs, with dataflow transfer functions on the
nodes, the edges or both. In any case, it takes an ITransferFunctionProvider
to tell it
what functions to use.-
Method Summary
Modifier and TypeMethodDescriptiongetEdgeTransferFunction
(T src, T dst) TODO: perhaps this should go with a Lattice object instead.getNodeTransferFunction
(T node) boolean
boolean
-
Method Details
-
getNodeTransferFunction
- Returns:
- the transfer function from IN_node -> OUT_node
-
hasNodeTransferFunctions
boolean hasNodeTransferFunctions()- Returns:
- true if this provider provides node transfer functions
-
getEdgeTransferFunction
- Returns:
- the transfer function from OUT_src -> EDGE_<src,dst>
-
hasEdgeTransferFunctions
boolean hasEdgeTransferFunctions()- Returns:
- true if this provider provides edge transfer functions
-
getMeetOperator
AbstractMeetOperator<V> getMeetOperator()TODO: perhaps this should go with a Lattice object instead. TODO: provide an API to allow composition of the meet operator with the flow operator for a given block, as an optimization?
-