Class TopDownBFPropagatePathEnumerator


  • public class TopDownBFPropagatePathEnumerator
    extends PathEnumerator
    This program counts all paths in the graph by iteratively enumerating all paths. It uses breadth first traversal to walk on the graph. WARNING: This can be very memory intensive on large graphs! Although it is time-efficient in contrast to its backtrack cousins, it uses a lot more memory avoid backtracking.
    Author:
    Payas Awadhutkar
    • Constructor Detail

      • TopDownBFPropagatePathEnumerator

        public TopDownBFPropagatePathEnumerator()
      • TopDownBFPropagatePathEnumerator

        public TopDownBFPropagatePathEnumerator​(boolean considerShortCircuitPaths)
    • Method Detail

      • enumeratePaths

        public PathEnumerator.EnumerationResult enumeratePaths​(com.ensoftcorp.atlas.core.query.Q cfg)
        Enumerates each path in the given CFG and returns each path as a list of line numbers. Note: I'm not sure if the way additions are counted here makes a lot of sense We need a more rigorous way to analyze the complexity of this algorithm.
        Specified by:
        enumeratePaths in class PathEnumerator