版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编译原理练习课(2),栾军7/22/2020,2020/7/22,2,3.1,考虑语法S-(L)| A1-L,S|S(a)建立句子(A,(A,A)和(A,(A)。a)的分析树(b)为a)的两个句子构造最左边的演绎(c)为a)的两个句子构造最右边的演绎(d)由该语法产生的语言是什么,2020/7/22,3,3.1(续)-(a,(a,a) (s),S()=(a,(a,s)=(a,(a,a),s=(l)=(l,s)=(l,(L,s) (a,a)(S,(L),L,S,S,S,S,S,S S)=(A,(A,A),S)=(A,(A,A),(L)=(A,(A,A),(L,S)=(a,(A,A),(S,S)=
2、(a,(A,A),(A,S)=(a,(A,A,(A),A),(L),L,S,S,S=(L)=(L,S)=(L,(L)=(L)=(L,(L),S)=(L)=(L,(L),S)=(L,(L),S)=(L,(L) (1)S=AsBs=AbS=AbAbS=AbAbAbS=AbAbAbS(2)S=AsBs=AbAsBs=AbAbAbS=AbAbAbS=AsB=AbAbAbS=AbAbAbS=AbAbAbAb(2),S,A,S,B,S,B,S,S,B,S,S,(1),(2),所描述的语言是一个具有相等数量的A和B的字符串,语法为R-R | R | R * |(R)| A | B(c)根据上述两个语法,构造
3、ab|b*a,2020/7/22,9,3.4(续)的分析树,并证明该语法产生了字母a和b上的所有范式:1)该语法产生的字符串是字母a和b上的范式R-a和R-b,它们产生a、b和a、b,如果R1和R2产生范式, 然后R-R-RR产生正规形式R-R1|R2产生正规形式| R-R1*产生正规形式* R-(R1)产生正规形式()2)字母表A和B上的所有正规形式可以产生字母表A和B上的任何正规形式从这个语法(这里它是正规形式)必须是下列形式之一:语法可以从R-R*产生()从R-(R),从R-a产生B,从R-B产生B 语法不包含运算符|、*、(。r=r | r=a | r *=a | b * r=r *=
4、r | r *=a | r *=a | b * e-e | t | TT-TF | ff-f * |(e)| a | b e=e |。不含糊,r,r | r,r,a,b,r,a,r *,b,r,r,a,r *,r | r,b,r,b,r,b,a,e,e | t以下条件语句语法stmt-if expr然后stmt | matched _ stmt matched _ stmt-if expr然后matched _ stmt else stmt |其他尝试消除浮动else的歧义。请证明这个语法仍然是不明确的。,2020/7/22,13,3.5(续),由于匹配(_stmt)不能保证然后和其他的配对,
5、因而存在二义性句型如果表达式然后如果表达式然后匹配_stmt else如果表达式然后匹配_stmt else stmt存在两个不同的最左推导期望的是:如果expr,则如果expr,则匹配_stmt else如果expr,则匹配_stmt else stmt,2020/7/22,14,3.5(续),一种推导,和期望的不一样stmt=匹配_stmt=if expr然后matched_stmt else stmt=if expr然后if expr然后matched_stmt else stmt=if expr然后if expr然后匹配_stmt else if expr然后stmt else stm
6、t=if表达式然后if expr然后匹配的_ stmt else如果expr然后匹配_stmt else stmt if expr然后if expr然后匹配的_stmt else如果expr然后matched_stmt else stmt,2020/7/22,15,3.5(续),另一种推导stmt=if expr然后stmt=if expr然后matched_stmt=if expr然后if expr然后matched_stmt else stmt=if expr然后if expr然后matched _ stmt else matched _ stmt=if expr然后if expr然后匹配
7、的_stmt else如果expr然后匹配_stmt else stmt if expr然后if expr然后匹配的_ stmt else如果expr然后matched_stmt else stmt,2020/7/22,16,3.8(a),消除3.1的左递归,2020/7/22,17,3.8(a) (续),S - (L)|aL - L,S|S只有直接左递归S - (L)|aL - SLL-,SL|,2020/7/22,18,3.10,构造下面文法的LL(1)分析表TLT国际| RealIdrR-,idR|,2020/7/22,19,3.10(续),先计算第一和FOLLOWFIRST(D)=FI
8、RST(T)=int,realFIRST(L)=id FIRST(R)=,FOLLOW(D)=FOLLOW(L)=$ FOLLOW(T)=IDFOLLOW(R)=$,2020/7/22,20,3.10(续),2020/7/22,21,3.11,下面文法是否LL(1)文法? 说明理由S - AB|PQxA - xyB - bcP - dP| Q - aQ|,2020/7/22,22,3.11(续),不是LL(1)文法LL(1)文法:对于产生式A-|,本题中,FIRST(AB)=x,FIRST(PQx)=d,a,x不满足条件(1),2020/7/22,23,3.15,(a)用3.1的文法构造(a,
9、(a,a)的最右推导,说出每个右句型的句柄(b)给出对应(a)的最右推导的移进-归约分析器的步骤(c)对照(b)的移进-归约,给出自下而上构造分析树的步骤,2020/7/22,24,3.15(续)(a) (b),S=(L)=(L,S)=(L,(L)=(L,(L,S)=(L,(L,a)=(L,(S,a)=(L,(a,a)=(S,(a,a)=(a,(a,(a),a),2020/7/22,25,3.15(续)(a) (b)续上表,S=(L)=(L,S)=(L,(L)=(L,(L,S)=(L,(L,a)=(L,(S,a)=(L,(a,a)=(S,(a,a)=(a,(a,(a),a),2020/7/22,26,3.15(续)(a) (b)续上表,S=(L)=(L,S)=(L,(L)=(L,(L,S)=(L,(L,a)=(L,(S,a)=(L,(a,a)=(S,(a,a)=(a,(a,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阳江市事业单位招聘高校毕业生考试真题2025
- 高尿酸患者健康档案管理
- 2026年医共体健康管理服务合同三篇
- 幼儿园疫情复课安全教育《生命至上》
- 非结核分枝杆菌病诊断与治疗指南总结2026
- 中国儿童青少年近视防控循证指南(2026年)
- 2026比赛组织类面试题及答案
- 2026北京幼师面试题目及答案
- 2025年中国玻璃包装瓶市场调查研究报告
- 2025年中国烧结设备市场调查研究报告
- 2026全国一卷语文真题 (回忆版)
- 2026二季度重庆巫山县事业单位公开考调25人笔试备考题库及答案解析
- 2026年六年级下册古文古诗断句专项题目及答案(部编版)
- 安徽省皖江名校联盟2026年5月高三最后一卷地理+答案
- 2026-2030中国电热合金行业发展分析及发展战略研究报告
- 2026年超声诊断仪行业分析报告及未来发展趋势报告
- 2025湖南省长沙市中考英语真题(解析版)
- 2026年陕西省基层法律服务工作者执业核准考试综合能力测试题及答案二
- 辽宁省沈阳126中学2026届初中英语毕业考试模拟冲刺卷含答案
- 湖北水利发展集团有限公司招聘笔试题库2026
- 书籍装帧设计毕业试卷
评论
0/150
提交评论