我目前正在使用 Graphviz 来可视化控制流图。基本上,一个(可简化的)控制流图是一个 DAG 加上一些指向前一层节点的边。后面的边不应影响节点放置。
目前,dot
绘制图形非常整齐,但缺乏一种简单的方法来添加交互性(例如折叠、滚动、缩放),这对于分析非常大的图形来说是无价的。因此,我选择了 d3.js 作为最成熟、功能最丰富的图形库。
我很确定有一种简单的方法可以在 d3.js 中绘制分层图(就像dot
d3.js 一样),但我似乎不认识它。我怎么做?如果这有帮助,我已经对我的 CFG 执行了支配分析。