我正在编写一个程序来尝试比较两种方法。我想为所有匹配的方法生成控制流图(CFG),并使用拓扑排序来比较两个图。
有一个Python包叫做staticfg https://pypi.org/project/staticfg/它正是从一段 Python 代码生成控制流图。
例如,将第一个Rosetta 代码中的快速排序 Python 片段 http://rosettacode.org/wiki/Sorting_algorithms/Quicksort#Python in qsort.py
,以下代码生成其控制流图。
from staticfg import CFGBuilder
cfg = CFGBuilder().build_from_file('quick sort', 'qsort.py')
cfg.build_visual('qsort', 'png')
请注意,它似乎无法理解更高级的控制流(例如推导式)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)