3

编译器在什么时候构建语法树?它是如何在构建可执行文件时形成树并翻译树的?

4

1 回答 1

2

构建语法树的编译器在解析步骤中这样做。它通常通过为与输入流匹配的每个语法规则生成一个树节点来执行此操作。

代码生成需要对树进行大量分析以了解类型、操作、优化机会等。通常这很难直接在树上做好,因此使用其他中间表示(三元组、静态单一分配……)。通常即使是中间阶段也不适合机器代码生成,因此可能会构造某种机器指令的表示(RTL),......

关键是树并不是编译器用来生成代码的唯一表示。

阅读介绍性编译器教科书(Aho 和 Ullman,“编译器”)以获取更多详细信息是非常值得的。

于 2011-04-04T06:26:50.317 回答