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

The Checker Framework enhances Java's type system to make it more powerful and useful. This lets software developers detect and prevent errors in their Java programs. The Checker Framework includes compiler plug-ins ("checkers") that find bugs or verify their absence. It also permits you to write your own compiler plug-ins.

There is a newer version: 3.47.0
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> {}