Package edu.cmu.cs.crystal.tac

This package contains classes and interfaces for writing flow analyses based on three-address code (TAC).

See:
          Description

Interface Summary
ITACAnalysisContext This interface defines methods to map AST data structures to TAC variables.
ITACBranchSensitiveTransferFunction<LE> Interface for defining branch-sensitive flow analysis transfer functions based on 3-address code instructions.
ITACFlowAnalysis<LE> This interface defines methods to map AST data structures to TAC variables.
ITACTransferFunction<LE> Interface for defining flow analysis transfer functions based on 3-address code instructions.
 

Class Summary
AbstractTACBranchSensitiveTransferFunction<LE> Abstract base class for defining branch-sensitive flow analyses based on 3-address code instructions (TACInstruction).
SimpleInstructionVisitor Extend this class to visit every 3-address code instruction in a method exactly once.
TACFlowAnalysis<LE> This class implements flow analyses over 3-address code instructions (TACInstruction).
 

Package edu.cmu.cs.crystal.tac Description

This package contains classes and interfaces for writing flow analyses based on three-address code (TAC). If you are writing a flow analysis, you may find TAC easier to use that the Eclipse AST. TAC has no sub-expressions and uses temporary variables to break up complex expressions in the AST into simpler expressions. To create a flow analysis using TAC, implement either ITACTransferFunction or ITACBranchSensitiveTransferFunction.