Python:从列表中的项目构建依赖关系图
我想要在一个列表中的项目(汇编指令)之间建立一个数据依赖图。具体来说,我想要做的是:
我需要从3条连续的汇编指令中提取操作数,并放到一个列表里,然后找出是否存在数据依赖关系。比如说,考虑这3条指令:
[add1 a1, a2, a3] (Format: instruction dest, source, source)
[sub a4, a5, a1]
[add2 a6, a4, a1]
这里的减法指令依赖于加法指令1的结果。同样,加法指令2也依赖于加法指令1和减法指令的结果。我的输出应该能够检测并报告这两种依赖关系(2依赖于1,3依赖于1和2)。我在考虑两种方法:
方法1:提取指令1的结果操作数,然后与指令2和3的源操作数进行比较,再提取指令2的结果操作数,并与指令3的源操作数进行比较。
方法2:构建一棵树,把源操作数当作子节点,把目标操作数当作根节点,然后检查这些节点是否相互连接。
我尝试了方法1,但我在想如何用方法2来实现这个目标。