编译器在何时构建语法树?在构建可执行文件时,它如何形成树并翻译树?
答案 0 :(得分:2)
构建语法树的编译器在解析步骤中执行此操作。它这样做,通常是通过为与输入流匹配的每个语法规则生成树节点。
代码生成需要对树进行大量分析才能理解类型,操作,优化机会等。通常这很难直接在树上很好地完成,因此使用其他中间表示(三元组,静态单一分配,... )。通常,即使是中间阶段也不适合机器代码生成,因此可以构建机器指令的某种表示(RTL),...
关键是树不是编译器用来生成代码的唯一表示。
阅读介绍性编译器教科书(Aho和Ullman,“编译器”)以获取更多详细信息是值得的。