编译原理分知识点习题 自下而上语法分析

编译原理分知识点习题 自下而上语法分析

ID:14237272

大小:239.50 KB

页数:8页

时间:2018-07-27

编译原理分知识点习题 自下而上语法分析_第1页
编译原理分知识点习题 自下而上语法分析_第2页
编译原理分知识点习题 自下而上语法分析_第3页
编译原理分知识点习题 自下而上语法分析_第4页
编译原理分知识点习题 自下而上语法分析_第5页
资源描述:

《编译原理分知识点习题 自下而上语法分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.★已知文法G[S]:S→SaA

2、AA→AbB

3、BB→cSd

4、e请证实AacAbcBaAdbed是文法的一个句型,并写出该句型的所有短语、素短语以及句柄。解:本题考查“句型”、“短语”、“句柄”、“素短语”等概念。符号栈S关系输入串最左素短语S1S2S3S4S5S6S7R1R2R3R4R5R6#<(adb)##<(db)#d#<(V)#b#<(V)#VdV#<(V=)##<(=V)>#(V)#V#接受因为存在从文法开始符号S到符号串AacAbcBaAdbed的推导过程

5、(如图6.1中的语法树所示),所以符号串AacAbcBaAdbed是文法的句型。从图6.1中句型A1a1c1A2b1c2Ba2A3d1b2ed2的语法树可知,该句型的短语有:A1、B、Ba2A3、c2Ba2A3d1、A2b1c2Ba2A3d1、e、A2b1c2Ba2A3d1b2e、c1A2b1c2Ba2A3d1b2ed2、A1a1c1A2b1c2Ba2A3d1b2ed2该句型的素短语有:Ba2A3、e该句型的句柄为:B2.★已知文法G[S]:S→*AA→0A1

6、*(1)求文法G的各非终结符号的FIRSTVT集和LASTVT集;(2)构造文法G的优先

7、关系矩阵,并判断该文法是否是算符优先文法;(3)分析句子*0*1,并写出分析过程。解:本题考查算符优先分析法中的有关知识:非终结符号的FIRSTVT集和LASTVT集的求法、算符优先关系的构造、算符优先文法的定义、算符优先分析过程等。(1)求文法G的各非终结符号的FIRSTVT集和LASTVT集。根据非终结符号的FIRSTVT集定义得到FIRSTVT(S)={*}FIRSTVT(S)={0,*}根据非终结符号的LASTVT集定义得到LASTVT(S)={*,1}LASTVT(S)={1,*}SSa1AA1Bc1Sd2AAb2BA2b1Bec2Sd1

8、Sa2A3AB图6.1句型AacAbcBaAdbed的语法树(1)构造文法G的优先关系矩阵。根据(1)中的FIRSTVT集和LASTVT集及算符优先关系构造算法对S→*A,按算法第3种情形有:(*<0),(*<*)对A→0A1,按算法第1种情形有:(0

9、=1)按算法第3种情形有:(0

10、<0),(0

11、<*)按算法第4种情形有:(1

12、>1),(*

13、>1),根据上述算符优先关系得到算符优先关系矩阵如表6.1所示。表中空白元素表示相应终结符号对之间没有算符优先关系,即它们不会在任何句型中相继出现。表6.1文法的算符优先关系矩阵01*0

14、<

15、=

16、<1

17、>*

18、

19、<

20、>

21、<(3)对句子“*0*1#”分析过程如表6.2所示。表6.2分析输入符号串“*0*1#”的过程符号栈S关系输入串最左素短语S1S2S3S4S5S6S7R1R2R3R4R5#<*0*1##<*<0*1##<*<0<*1##<*<0<*>1#*#<*<0V=##<*<0V=1>#0V1#<*V>#*V#V#接受3.试为下列优先矩阵构造优先函数。(1)S1S2S3S4S1S2±±S3>>S4>>(2)S1S2S3S4S1>>S2>S3<±

22、4f1111g1111第1次迭代:S1S2S3S4f1122g1111第2次迭代:S1S2S3S4f1122g1111第2次迭代没有变化,所以第2次迭代结果便是优先函数。(3)采用Bell有向图法构造优先函数(省略)。因为fs1可以到达的结点:gs3,gs4,fs4,gs3,gs2fs2可以到达的结点:gs3,fs3,gs2,fs4,gs1fs3可以到达的结点:gs2,fs3fs4可以到达的结点:gs1,gs3,fs3,gs2,fs4gs1可以到达的结点:fs3,fs4,gs2,gs1,gs3gs2可以到达的结点:fs3,gs2gs3可以到达的结点

23、:fs4,fs3,gs1,gs3,gs2gs4可以到达的结点:无于是得到优先函数如表6.3所示。S1S2S3S4f7625g52514.试为文法G[Z]:Z→A()A→(

24、Ai

25、B)B→i构造算符优先关系和优先函数。解:本题考查算符优先关系的构造方法和优先函数的构造方法。(1)构造算符优先关系。首先构造FIRSTVT集和LASTVT集,根据定义有:FIRSTVT(Z)={(,i,)}FIRSTVT(A)={(,i,)}FIRSTVT(B)={i}和LASTVT(Z)={}}LASTVT(A)={(,),i}LASTVT(B)={i}按照构造算符优先

26、关系的算法得到如下算符优先关系:“=”的构造∵有产生式Z→A()∴按算法第1种情形有:((=))“<”的构造文法没有满足“

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

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

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