消除改写文法的左递归ppt课件.ppt

消除改写文法的左递归ppt课件.ppt

ID:58584085

大小:136.00 KB

页数:18页

时间:2020-10-20

消除改写文法的左递归ppt课件.ppt_第1页
消除改写文法的左递归ppt课件.ppt_第2页
消除改写文法的左递归ppt课件.ppt_第3页
消除改写文法的左递归ppt课件.ppt_第4页
消除改写文法的左递归ppt课件.ppt_第5页
资源描述:

《消除改写文法的左递归ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、文法等价变换文法的等价对文法G1和G2,若有:L(G1)=L(G2),则称文法G1和G2等价,记作:G1=G2.文法等价变换有些语法分析方法要求被分析的文法满足一定的约束条件,当被分析的文法不满足这些条件是,常常要进行文法变换。1增补产生式消除空产生式消除不可达产生式消除特型产生式消除公共前缀消除左递归重要的文法等价变换21.增补产生式何时需要增补:在自底向上语法分析中需要。定理:对任一文法G1都可以构造文法G2,使得L(G1)=L(G2),且G2的开始符唯一且不出现于任何产生式的右部。证明:假设S是G1的开始符,则只要在G1中扩充一条新产

2、生式ZS即可,其中Z是新的开始符。另这样扩充后的文法为G2,则它显然满足定理的要求。33例:G1[S]:S→abSA

3、aA→bG2[Z]:Z→SS→abSA

4、aA→b42.消除空产生式定理:对任一文法G1,可构造文法G2,使得L(G1)=L(G2),且G2中无空产生式。证明:根据G1,构造G2的方法如下:令={A

5、A},={A

6、A+,+};从G1中删除所有形如A的产生式。从G1删除只能导出空串的非终极符。对于文法中任意产生式AX1X2…Xi-1XiXi+1…Xn,若Xi,补充规则AX1X2…Xi-1Xi+

7、1…Xn;重复以上过程,直到不出现新的产生式。5例:设有如下文法AaBcDBb

8、DBB

9、d消除该文法中的空产生式.解:(1)={B}={B,D}(2)AaBcDBbDBB

10、dAacD(3)AaBcDAaBcAacDBDBB得到新的文法如下:AaBcD

11、acD

12、aBc

13、acBbDBB

14、B

15、d63.消除不可达产生式定理:对任一文法G1都可以构造文法G2,使得L(G1)=L(G2),且G2中的每个非终极符必出现在它的某个句型中。证明:根据G1,构造文法G2的方法如下:令={S

16、S是文法的开始符}。递归扩充

17、={B

18、AxByG1,BVN,A}。若A,则删除以A为左部的所有产生式。74:消除特型产生式特型产生式若文法中的产生式具有形式AB(B为非终极符),则称该产生式为特型产生式.特型产生式的缺点是在语法分析中会降低分析的速度,因此应该消除这样的产生式.8证明:构造无特型产生式的文法G2的方法如下:(1)对文法G1中每个非终极符A,求集合:A={B

19、A=>+B,BVN}.(2)若BA,且B是文法G中的一个非特型产生式,则补充如下规则:A(3)去掉文法G1中的所有的特型产生式.(4)去掉新的文法中的无用产生式.定

20、理对任一文法G1,可以构造文法G2,使得L(G1)=L(G2),并且在G2中没有特型产生式.9例设有如下文法AB

21、D

22、aBBC

23、bCcDB

24、d消除该文法中的特型产生式.解:A={B,D,C}B={C}C={}D={B,C}根据算法第2步在文法中补充如下规则Ab

25、d

26、cBcDb

27、c去掉文法中的特型产生式,得到如下文法AaB

28、b

29、d

30、cBb

31、cCcDb

32、c

33、d其中关于C和D的产生式是无用产生式,应去掉.105:消除公共前缀公共前缀:A→,A→这种情形不满足自顶向下的语法分析条件.消除方法:可用提取左因子的方

34、法.假定关于A的规则是:A1

35、2

36、…

37、n

38、1

39、2

40、…

41、γm则将这些规则写成:AA’

42、1

43、γ2

44、…

45、γmA’1

46、2

47、…

48、n116.消除左递归一个文法含有下列形式的产生式时(1)AAa

49、b,称为直接左递归其中AVN;a,(VNVT)*(2)AB

50、BA

51、其中A,BVN;a,,,(VNVT)*称为间接左递归文法中只要有A+A…,则称文法为左递归的。12(1)对直接左递归形如:AA

52、消除左递归得:AAAA

53、(2)间接左递归形如:AB

54、BA

55、转为直接左

56、递归形式:AA

57、

58、或者BB

59、

60、按照直接左递归方式消除。去掉多余的产生式。对于不含回路或空产生式,消除左递归方法为:13ET

61、E+TTF

62、T*FFid

63、(E)例:TFT’T’*FT’

64、ETE’E’+TE’

65、Fid

66、(E)14增加拓广产生式消除空产生式消除不可达产生式消除特型产生式消除公共前缀消除左递归重要的文法等价变换15练习:1.设有如下文法,画出句型(adSdS)的语法树并写出其短语、简单短语和句柄。Sa

67、b

68、(A)ASdA

69、S2、试将描述命题演算公式的二义性文法G(S)改写为等价的无二

70、义性文法。优先级:()>非not>合取and>析取orSSandS

71、SorS

72、notS

73、p

74、q

75、(S)参照表达式文法转换3、消除改写文法的左递归。EE+EEE*EE(E)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。