关于消除文法左递归的问题!!

xiaoling9 2005-12-01 09:16:21
设已知给定文法G<S>
S->SaB|bB
A->Sb|ε
B->Ac|ε
请问各位高手,这个文法怎样通过消除左递归变为LL(1)方法???
...全文
397 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr_Yang 2005-12-04
  • 打赏
  • 举报
回复
消除左递归方法:
1.直接左递归消除:
原文法: P->Pa1|Pa2|...|Pan|b1|b2|...|bn
消除后: { P->b1P'|b2P'|...|bnP'
P'->a1P'|a2P'|...|anP' }
2.间接左递归消除:
1>把所有非终结符号按一定序列排序为P1,P2,...Pn
2>FOR i=1 TO n DO /*依次处理每个非终结符号*/
FOR j=1 to i-1 DO /*处理第1个到i-1个*/
若Pi->pj
则改为Pi->S1r|S2r|...|Skr
其中Pj->S1|S2|...|Sk
对Pi消除直接左递归
3>去掉无用符号和无用产生式
jamesband031 2005-12-04
  • 打赏
  • 举报
回复
帮顶

--------签名档----------------------------

号外号外,新鲜的酷站大出炉,不买也看看啊:*)

www.source520.com

80G源码电子书免费免注册下载,大量精辟技术文档库随时更新

3,423

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧