消除文法的左递归实验.docxVIP

  • 51
  • 0
  • 约3.25千字
  • 约 7页
  • 2020-06-14 发布于辽宁
  • 举报
编译原理实验报告 实验名称 消除文法的左递归 实验时间 院系 班级 学号 姓名 叮叮小文库 叮叮小文库 PAGE PAGE # 试验目的 ?掌握和理解消除左递归(包括直接左递归和间接左递归)在构建 LL(1)文法的作用和目的 ?掌握消除左递归(包括直接左递归和间接左递归)的方法和步骤。 ?写出对于输入任意的上下文无关文法可以输出消除了左递归的等 价文法。 实验原理 ?直接左递归的消除 消除产生式中的直接左递归是比较容易的。例如假设非终结符 P的规则为 P— Pa/ B 其中,B是不以P开头的符号串。那么,我们可以把 P的规则改写为 如下的非直接左递归形式: P—尸’ P— P £ 考虑更一般的情况,假定关于非终结符 P的规则为 P— P a / P o2 / …/ P an / [31 / [32 / …/ pm 其中,a (I = 1, 2,…,n)都不为£而每个pj (j = 1, 2,…,m) 都不以P开头,将上述规则改写为如下形式即可消除 P的直接左递归: P— pl P/ 32 P/…/pm P P — 01P / a P/…/ an P/£ ?间接左递归的消除 直接左递归见诸于表面,利用以上的方法可以很容易将其消除, 即把直接左递归改写成直接右递归。然而文法表面上不存在左递归并 不意味着该文法就不存在左递归了。有些文法虽然表面上不存在左递 归,

文档评论(0)

1亿VIP精品文档

相关文档