第六节语法制导译在前面已经介绍了编译程序构造的二个重.ppt

第六节语法制导译在前面已经介绍了编译程序构造的二个重.ppt

第六章 语法制导译 在前面已经介绍了编译程序构造的二个重要阶段,即词法分析和语法分析。现在再来介绍编译程序的另一个重要阶段——中间代码生成。虽然在实际应用中,是否采用中间代码形式是根据实际情况而定的。但事实上,为了使编译程序的结构清晰、简单、明确,多数编译程序采用了中间代码的形式。尤其是使用了中间代码的形式,使目标代码优化比较容易实现。通常以中间代码生成这一阶段来划分编译程序的前端和后端。对于不同的高级语言只要翻译成相同的中间代码,再接上一个相同的把中间代码翻译成目标代码的后端,就可以形成不同的编译程序。同一种高级语言只要翻译成相同的中间代码就可以共用一个前端,接上后端可以在不同机型上实现同一语言的编译程序。虽然中间代码的形式很多,但常见的中间代码有逆波兰式、三元式、四元式、树形表示等。本章讨论如何将高级语言翻译成中间代码。 6.1 中间代码的形式 中间代码的形式虽然很多,但组成中间代码的原则是: (1) 形式比较简单,容易翻译成相应的目标机器代码 (2) 能充分反映源程序的特点 比较常用有逆波兰式、三元式、四元式和树型表示。 6.1.1 逆波兰式 逆波兰式是由波兰数学家卢卡西维奇发明的一种表示算术表达式或逻辑表达式的方法,它是一种能表示运算符的计算顺序,但没有括号的表达式。在这种表示法中,把运算符直接跟在运算对象后面,因此逆波兰表

文档评论(0)

1亿VIP精品文档

相关文档