语法制导的关于三地址代码生成器.doc

学习好资料 欢迎下载 实验二:语法制导的三地址代码生成器 一 教学重点与实现的关键技术 1.1 自顶向下( top — down)分析概述 自顶向下分析法包括:递归子程序法和预测分析法 (LL(1)) 。 自顶向下就是从文法的开始符号出发,向下推导,推出句子。这种方法是带“回溯”的。其主旨是:对任何输入串,试图用一切可能的办法,从文法开始符号(根)出发,自顶向下地为输入串建立一棵语法树。或者说,为输入串寻找一个最左推导。这种分析过程本质上是一种试探过程,是反复使用不同产生式谋求匹配输入串的过程。 例: G 为: S→xAy A → **|* ,输入串: x**y xAy x**y S x A y * * y 的匹配。 在子树 A 通过试探匹配后,才进行下一个符号 实现这种自顶向下的带回溯试探法的一个简单途径是让每个非终结符对应一个递归子程 序。每个子程序可作为一个布尔过程。一旦发现它的某个侯选与输入串相匹配,就用这个侯选 去扩展语法树,并返回“真”值;否则,保持原来的语法树和 IP 值不变,并返回“假”值。 这种分析法有许多困难和缺点。 首先,是文法的左递归问题。 其次,回溯会碰到一大堆麻烦事情。 第三,在上述的自顶向下分析过程中,当一个非终结符用某一候选匹配成功时,这种成功可能是暂时的。 第四,当最终报告分析不成功时,难于知道输入串中出错的确切位置。 1.2 LL ( 1)

文档评论(0)

1亿VIP精品文档

相关文档