编译原理复习.doc_第1页
编译原理复习.doc_第2页
编译原理复习.doc_第3页
编译原理复习.doc_第4页
编译原理复习.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3.文法:S-MH|aH-LSo|K-dML|L-eHfM-K|bLM判断G是否为LL(1)文法,如果是,构造LL(1)分析表。解:各符号的FIRST集和FOLLOW集为:各产生式SELECT集为:SELECTS-MHd,b,e,#,oS-aaH-LSoeH-#,f,oK-dMLdK-e,#,oL-eHfeM-Kd,e,#,oM-bLMb预测分析表由于预测分析表中无多重入口,所以可判定文法是LL(1)的已知文法为:A-aAd|aAb| 判断该文法是否是SLR(1)文法,若是构造相应分析表,并对输入串ab#给出分析过程。解:增加一个非终结符S/后,产生原文法的增广文法有:S-AA-aAd|aAb| 下面构造它的LR(0)项目集规范族为: 从上表可看出, 状态I0和I2存在移进-归约冲突,该文法不是LR(0)文法。对于I0来说有: FOLLOW(A)a=b,d,#a=,所以在I0状态下面临输入符号为a时移进,为b,d,#时 归约,为其他时报错。对于I2来说有也有与I0完全相同的结论。这就是说,以上的移-归冲突是可以解决的,因此该文法是SLR(1)文法。 其SLR(1)分析表为:对输入串ab#给出分析过程为: 对给定正规式b*(d|ad)(b|ab)+,构造其NFA M; 解答:首先用A+=AA*改造正规式得:b*(d|ad)(b|ab)(b|ab)*;其次,构造该正规式的NFA M,如图3-6-7所示。 试为表达式w+(a+b)*(c+d/(e-10)+8)写出相应的逆波兰表示。解:wab+cde10-/+8+*+ 构造下述文法 GS的自动机:S-A0 A-A0|S1|0 该自动机是确定的吗?若不确定,则对它确定化。 解:由于该文法的产生式 S-A0 ,A-A0|S1 中没有字符集VT的输入,所以不是确定的自动机。 要将其他确定化,必须先用代入法得到它对应的正规式。把S?A0 代入产生式 A?S1 有:A=A0|A01|0=A(0|01)|0=0(0|01)*。代入S-A0有该文法的正规式:0(0|01)*0,所以,改写该文法为确定的自动机为: 由于状态A有3次输入0的重复输入,所以上图只是NFA,面将它确定化:下表由子集法将NFA转 换 为 DFA: 由上表可知DFA3.写出表达式(a+b)/(a-b-(a+b*c)的三元序列及四元序列。解:(1)三元式:(,a,b)(,a,b)(/,)(*,b,c)(,a,) (,)(2)四元式: (,a,b,T1)(,a,b,T2)/,T1,T2,T3)(*,b,c,T4)(,a,T4,T5)(,T3,T5,T6) 4.写一个文法使其语言为偶数集,且每个偶数不以0开头。解:文法G(S):SAB|B|A0AAD|CB2|4|6|8C1|3|5|7|9|BD0|C 5.设文法G(S):SSaF|aF|aFF*aF|*a (1)消除左递归和回溯; (2)构造相应的FIRST和Follow集合。1) S-aFS|aFSS-aFS|F-*aFF-F|(2) FIRST(S)a,+FOLLOW(S)FIRST(S)+,FOLLOW(S)FIRST(F)*FOLLoW(F)(+,FIRST(F)*,FOLLOW(+,五.计算题(10分)已知文法为:S-a|(T) T-T,S|S 构造它的LR(0)分析表。 解:加入非终结符S,方法的增广文法为:S-SS-aS-S-(T)T-T,S T-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论