将有序树转换为有向无环图的算法

标签 algorithm parsing tree directed-acyclic-graphs

假设我有一种可以编写的编程语言: x = f(g(1), h(1)) 在这种情况下,有向无环图将像电子表格一样显示计算的依赖关系(假设非递归表达式):

 1
| \
g  h
 \ /
  f

这是一个简单的示例,但尝试在 DAG 中“压缩”更复杂的表达式会变得很有趣。这里的目标是根据依赖关系优化重新计算的次数。

有哪些算法和论文可以用来处理这个问题?

最佳答案

更具体一点,它是 Local Common Subexpression Elimination。 Dragon Book 中给出了一种算法, "6.1.2 构造 DAG 的值数法"

关于将有序树转换为有向无环图的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8117032/

相关文章:

php - 难以理解简单的算法

c# - 使用固定长度字段的可变长度数组解析消息

python - 使用 numpy.genfromtxt 填充缺失值

Delphi - 对象树中的继承链

javascript - 添加两个数字,其中每个数字以相反的顺序在链表中

algorithm - 帮忙解答问题

java - 力扣 : Partition array according to a pivot

java - 按出现次数对单词列表进行排序的最简单方法

tree - 在 LISP 中学习基于树的遗传编程的资源?

haskell - 在 Haskell 上,有一个标准函数可以在树上执行 "scan"吗?