版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《编译原理》复习题《编译原理》复习题#表1SLR分析表ACTIONGOTO状态ab#S0S1S231S1S2r342S1S253acc4r15r243.给出表达式-a*b+b*c+d/e的语法树和三元式序列。⑵识别该文法所产生的活前缀的 DFA如图⑵识别该文法所产生的活前缀的 DFA如图1所示。【解】注意到状态IiFOLLOW(S)={#}{a}n{b}nFOLLOW(R)=①可以采用SLR冲突消解法,得到如下的 SLR分析表。从分析表可以看出,表中没有冲突项,所以该文法是SLR(1)文法。三元式答:语法树三元式++◎(-,a,-)②。*,①,b)3(*,b,c)+,②,③)⑤(/,d,e)®(+,④,⑤)44.证明下面文法StAaAb|BbBaA宀&B—g是LL(1)文法,但不是SLR(1)文法。证明:(1)first(AaAb)={a}first(BbBb)={b},有first(AaAb)Afirst(BbBb)=①所以根据LL(1)文法的定义,该文法是 LL(1)文法。(2分)(2)为了构造识别活前缀的 DFA,初态集包含如下四个项目: S—.AaAb S—.BbBaA—. B—.但该项目中有两个可归约项目: A—. B—.,产生归约-归约冲突,而follow(A)={a,b},follow(B)={a,b},有follow(A)Afollow(B)工①,所以使用向前看一个终结符的方法不能解决此冲突,所以该文法不是SLR(1)文法。(3分45.现有文法G[S]S—a|£|(T)T—T,S|S请给出句子(a,(a,a))的最左、最右推导,并指出最右推导中每一个句型的句柄。答:最左推导:S=>(T)=>(T,S)=>(S,S)=>(a,S)=>(a,(T))=>(a,(T,S))=>(a,(S,S))=>(a,(a,S))=>(a,(a,a))最右推导:S=>(T)=>(T,S)=>(T,(H)=>(T,(T,S))=>(T,(T,_a))=>(T,(S,a))=>(T,(a,a))=>(S,(a,a))=>(a,(a,a))句型的句柄是为加下划线的部分答:初始划分:46.将下图的DFA最小化。答:初始划分:11={{0,1,2},{3,4}}(1分)(1)考查{0,(1)考查{0,1,2},1和2接受a,b后都转向相同的状态,且接受b后转向终态,而0接受b后转向非终态2向非终态2,所以0与1,2可分,llnew={{0},{1,2},{3,4}}(1分)考查{3,4},接受a,b后都转向相同的状态,所以3,4不可分。llnew={{0},{1,2},{3,4}}(1分)将1,2合并用1代表,3,4合并用3代表,最终的最小化DFA如下:a47.设有如下文法: PtDD^D;D|id:T|procid;D;Ttreal|integer给出一个语法制导定义,打印该程序一共声明了多少个 ida47.设有如下文法: PtDD^D;D|id:T|procid;D;Ttreal|integer给出一个语法制导定义,打印该程序一共声明了多少个 id。答:文法语法制导定义PtDPrint(D.num)DTD1;D2D.num=D1.num+D2.numdtid:TD.num=1DTprocid;D1;D.num=D1.num+1TtrealTtinteger48.识别文法G的活前缀的DFA如下图所示,补充完成状态分析表。12和15,然后根据该图构造SLR(1)G:(4)(0)P'tp (1) PtaPb (2)PtqQtbSc(5)StSa (6)Sta(3)QtbQc答:12,I5分别如下图所示:Follow(P)={b,$}1分Follow(Q)={b,c,$} 1分四元式序列:Follow(S)={c,a}1分四元式序列:SLR(1)分析表:Action表GOTO表abc$PQS0S2S5131Acc2S2S5433R2R24S75S6S59106R6R67R1R18R3R3R39S810S12S1111R4R4R412R5R549.给出表达式(a+b)*(c+d/e)的语法树和四元式序列。*答:语法树如下:*◎(+,a,b,T1)®(/,d,e,T2)3(+,c,T2,T3)*,T1,T3,T4)50.构造文法StAaAb|BbBaA£B—g的预测分析表。答:first(S)={a,b},First(AaAb)={a},First(BbBa)={b}Follow(A)={a,b}Follow(B)={a,b}ab$SS—AaAbS—BbBaAA—£A—£BB—£B—£
•写出C语言标识符集(字母或下划线开头的由字母、数字、下划线构成的串)的正规式。解答:用D表示数字0-9,用L表示字母a-z|A-Z,则C语言标识符的正规式为:(L|_)(L|D|_)*•有一语法制导定义如下,其中 +表示符号连接运算:StBBtaBtbBtBaBtBbprintB.versB.vers=aB.vers=bB.vers=a+B.versB.vers=b+B.vers若输入序列为abab,且采用自底向上的分析方法,则输出序列为( _baba_ )。用分析树表示求解过程。PrintbabaBtBB.vers=baba*B.vers=aba+B.vers=ba+B.vers=a53•假设第一个四元式的序号是 100,写出布尔表达式a<bVcAd>e的四元式序列。100(j<,a,b,106)101(j,_,_,102)102(jnz,c,_,104)103(j,_,_,q)104(j>,d,e,106)105(j,_,一,q)T:106F:q54•设有如下文法:G[E]:iEWT|TT tT/F|FF E)|a|b|cWt+|-证明符号串a/(b-c)是句子。解答:有推导E:T:T/F二F/F=a/F二a/(E)=a/(EWT)二a/(TWT)二a/(FWT)二a/(bWT)=a/(b-T)二a/(b-c),即从文法开始符号E能够推导出a/(b-c),所以a/(b-c)是文法G[E]的句子。55•对于下列文法G[S]:StSb|bAA taA|a构造一个与G等价的LL(1)文法G'。对于文法G,构造相应的LL(1)分析表。解:(1)(5分)G':StbAS'S'tbS'|&AtaA'A'tA|&(2)(1分)FIRST(S)={b}FIRST(S')={b,&}FIRST(A)={a}FIRST(A'):={a,&}FOLLOW(S)={#}FOLLOW(S,)={#}FOLLOW(A)={b,#}FOLLOW(A')=(b,#)LL(1)分析表:ab#SStbAS'S'S'tbS'S'T&AataA'A'A'taA't&A'T&56.构造下述文法的SLR(1)分析表。G[S]:St(A)A tABB|BB tb解:拓丿乂法:(1分)S'TS(0)St(A)(1)ATabb(2)AtB(3)Btb(4)识别活前缀的DFA:(4分)
FIRST集和follow集:(1分)follow(S)={#}follow(A)={b,)}follow(B)={b,)}First(S)={(,c}follow(S)={#}follow(A)={b,)}follow(B)={b,)}First(A)={b}First(B)={b}StbAbStbAbprint“1”At(Bprint“2”Ataprint“3”BtaA)printa▲”4若输入序列为b(a(a(aa)))b,且米用自下而上的分析方法,则输出序列为(57.有一语法制导定义如下:34242421 )。SLR⑴分析表:(4分)ACTIONGOTO()b#SAB0S211Acc2S4353S6S474R4R45R3R36R17S488R2R258.写出赋值语句X=-(a+b)/(c-d)-(a+b*c)的逆波兰表示。Xab+-cd-/abc*+-=59.为文法G[S]:S~(L)|aLtL,S|S写一语法制导定义,它输出句子中括号嵌套的最大层次数。
解:使用num属性描述括号的嵌套最大层次数解:S—S print (S.num)S^(L) S.num=L.num+1S—a S.num=O—L,S L.num=ifL .num>S.numthenL.numelseS.numL—S L.num=S.num每个式子1分。60.设有文法G[S]:S—aAcB|BdA—AaB|
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 模板支撑专项施工方案
- 地下车库环境卫生整治措施
- 宠物零食陈列指引货架规范
- 太阳能路灯系统安装调试及维护保养技术手册
- 冲压工艺参数优化控制方案
- 服务偏好记录转接规范流程
- 急救室宠物休克处理流程操作手册
- 脚手架搭设拆除方案
- 引江济淮J0123标钻孔灌注桩专项施工方案(旋挖钻)
- 猫传腹诊疗规范宠物医院专用
- 《AQ3067-2026化工和危险化学品重大生产安全事故隐患判定准则》解读
- 国家机关事务管理局所属事业单位2025年度公开招聘应届毕业生笔试模拟试题
- 服装压力舒适性的测试与评价体系构建
- 2026年钻探工技师考试题及答案
- 国开2026年《公共政策概论》形成性考核任务1-4答案
- YDT 5102-2024 通信线路工程技术规范
- 【MOOC】航空燃气涡轮发动机结构设计-北京航空航天大学 中国大学慕课MOOC答案
- 中考历史复习-历史最后一课课件
- 内部审计培训系列课件
- [贵州]高速公路隧道贯通施工专项方案
- 工业电气厂用电r技术和使用说明书
评论
0/150
提交评论