相关疑难解决方法(0)

AST翻译?

我有一个AST(抽象语法树),现在我想测试我的编译器,给它2个或更多的数字,并期望输出与数学运算的结果(如计算器).

我的问题是,构建解释器的最佳方法是什么?访问AST节点是递归的,所以我不知道有多少封装计算存在,直到我到达树的末尾.但由于这是通过迭代迭代完成的,我怎样才能最终完成所有操作?

谢谢

interpreter abstract-syntax-tree

8
推荐指数
1
解决办法
5282
查看次数

使用反向波兰表示法(RPN)的算术表达式评估

数学表达式通常用中缀表示法表示.出于评估目的,我们可以将其更改为postfix(反向抛光)表示法(使用Shunting-Yard等算法),然后使用堆栈评估后缀表示法.

我发现计算器使用这种技术,但今天的现代编译器是否使用它进行算术表达式评估?它是否足够有效或正在使用其他技术(或算法)?

compiler-construction infix-notation expression-evaluation shunting-yard

4
推荐指数
1
解决办法
3057
查看次数