All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.checkerframework.dataflow.analysis.TransferFunction Maven / Gradle / Ivy

Go to download

dataflow-shaded is a dataflow framework based on the javac compiler. It differs from the org.checkerframework:dataflow artifact in two ways. First, the packages in this artifact have been renamed to org.checkerframework.shaded.*. Second, unlike the dataflow artifact, this artifact contains the dependencies it requires.

There is a newer version: 3.42.0-eisop5
Show newest version
package org.checkerframework.dataflow.analysis;

import org.checkerframework.dataflow.cfg.node.Node;
import org.checkerframework.dataflow.cfg.node.NodeVisitor;

/**
 * Interface of a transfer function for the abstract interpretation used for the flow analysis.
 *
 * 

A transfer function consists of the following components: * *

    *
  • Initial store method(s) that determines which initial store should be used in the * org.checkerframework.dataflow analysis. *
  • A function for every {@link Node} type that determines the behavior of the * org.checkerframework.dataflow analysis in that case. This method takes a {@link Node} and * an incoming store, and produces a {@link RegularTransferResult}. *
* *

Note: Initial store method(s) are different between forward and backward transfer * functions. Thus, this interface doesn't define any initial store method(s). {@link * ForwardTransferFunction} and {@link BackwardTransferFunction} will create their own initial store * method(s). * *

Important: The individual transfer functions ( {@code visit*}) are allowed to use * (and modify) the stores contained in the argument passed; the ownership is transferred from the * caller to that function. * * @param type of the abstract value that is tracked * @param the store type used in the analysis */ public interface TransferFunction, S extends Store> extends NodeVisitor, TransferInput> {}