南京师范大学计算机科学与技术学院编译原理课件第二章 文法与语言(四).pptVIP

  • 2
  • 0
  • 约2.34千字
  • 约 13页
  • 2019-05-13 发布于广东
  • 举报

南京师范大学计算机科学与技术学院编译原理课件第二章 文法与语言(四).ppt

2005/03/14 南京师范大学计算机系 杨明 南京师范大学 杨明 教授 2.4 文法左递归的消除 左递归?右递归:改写规则的办法 例2.4.1 G[E]: E::=E+T|T?E::=T+E|T 例2.4.2 G[E]: E::=E+T|T T::=T*F|F F::=(E)|i ?E::=TE1 E1::=+TE1| T::=FT1 T1::=*FT1| F::=(E)|i 2.4 文法左递归的消除 2.左递归?右递归:扩充的BNF表示法 运用的规则: 1)U::=ux|uy|…|uz?U::=u(x|…|z) 2)U::=x|y|…|z|Uu?U::=(x|…|z){u} 例2.4.3 G[E]: E::=E+T|T?E::=T{+T} 注:情况1和2仅消除规则的左递归。 ??如何消除文法的左递归 2.4 文法左递归的消除 注:不是任何文法的左递归均可消除。 必要条件:文法中不包含U=+U,U::= 算法: (1)将文法G的所有非终结符号以某种顺序排列成U1,U2,…,Un; (2)for(j=1;j=n;j=j+1) { for(k=1;k=j-1;k=k+1)

文档评论(0)

1亿VIP精品文档

相关文档