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

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

package org.checkerframework.dataflow.analysis;

import org.checkerframework.checker.nullness.qual.Nullable;

/**
 * This interface defines a backward analysis, given a control flow graph and a backward transfer
 * function.
 *
 * @param  the abstract value type to be tracked by the analysis
 * @param  the store type used in the analysis
 * @param  the backward transfer function type that is used to approximate run-time behavior
 */
public interface BackwardAnalysis<
        V extends AbstractValue, S extends Store, T extends BackwardTransferFunction>
    extends Analysis {

  /**
   * Get the output store at the entry block of a given control flow graph. For a backward analysis,
   * the output store contains the analyzed flow information from the exit block to the entry block.
   *
   * @return the output store at the entry block of a given control flow graph
   */
  @Nullable S getEntryStore();
}