我什至不确定这是否适合提出这样的问题。
作为我的硕士论文的一部分,我正在做一些并行算法的事情。简单地说,我正在做的事情的一部分是并行评估数千个表达式树(表达式如sin(exp (x + y) * cos (z))
)。我现在正在做的是将这些表达式树转换为前缀/后缀表达式,并使用常规方法(堆栈、递归等)评估它们。这些是我们在数据结构和基础计算机科学课程中学到的基本知识。
我想知道是否还有其他东西可以用来代替表达式树来处理表达式。我知道编译器在解析阶段大量使用表达式树,所以我假设没有表达式树的替代品(否则有人会在编译器中使用它)。
此类表达式是否有任何替代评估方法(而不是堆栈和递归)。更“并行”友好的东西?用堆栈解析这样的表达式是顺序的,并且会在并行系统中产生瓶颈。(我的工作也可以接受异国/怪异/理论方法 - 如果有的话)