编译原理大复习研讨.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
习题2.10(2)的解 该DFA从初态到终态有三条路径:b|c|a(a|c)*b,而且是这三条路径的至少一次重复,故正规式为:(b|c|a(a|c)*b)+ 习题3.7 设计一文法G,使得L(G)={ω|ω是不以0开始的正奇数} 思路:首先根据集合的描述设计几个句子,然后从句子中找出规律(或共性),把它们的性质用产生式表示出来。 解:正规式: ? 个位:[13579] 个位以上:[0-9]* 最高位:[1-9] ? 三段连起来:[1-9][0-9]*[13579] 两种情况: [1-9][0-9]*[13579] | [13579] 产生式: S→ACB|B A→1|2|3|4|5|6|7|8|9 B→1|3|5|7|9 C→ε|0C|AC 习题 3.17 对于文法G3.4和它所产生的句子-id+id*id 和 -(id+id)*id E → E+T|T T → T*F|F (G3.4) F → (E) |-F|id (1)构造基于LR(0)项目集的识别活前缀的DFA (2)指出DFA中所有含有冲突的项目集,并说明这些冲突可以用SLR(1)方法解决; (3)构造文法G3.4的SLR(1)分析表 (4)用分析表对句子-id+id*id 和 -(id+id)*id进行分析(以格局变化的方式) (5)根据(4)的分析给出-id+id*id的分析树和剪句柄的过程 解:作为练习,本题的每一步都是必要的。相对来说分析表的构造并不重要。 习题 3.17(解) (1)构造基于LR(0)项目集的识别活前缀的DFA (2)指出DFA中所有含有冲突的项目集,并说明这些冲突可以用SLR(1)方法解决; 冲突的项目集:I2,I11 计算FOLLOW(E),看*是否在其中(略) 构造SLR(1)分析表的方法: 1.可移进项直接从DFA上看: action[I,a]:=sj goto[I,A]:=k 2.可归约项分两步走:若在I状态中有[A→α.], 首先计算:FOLLOW(A), 然后填写:action[I,b]:=Ri 其中:b∈FOLLOW(A)且A→α是第i个产生式。 习题 4.4 假定下述程序分别采用值调用,引用调用,复写-恢复和换名调用,请给出它们的打印结果。 program main(input output); procedure p(x,y,z); begin y:=y+1; z:=z+x end; begin a:=2; b:=3; p(a+b, a, a); print a end; 两种解题的思路: 1. 把自己当作计算机,按照参数传递的实现方式“运行”一遍程序,得出结果; 2. 找台机子把程序敲进去试试(辅助手段) 困惑的是:表达式a+b如何作为引用调用和复写-恢复的实参? 解决方案:忽略返回值问题。其实这一思想可以推广到任何不支持某种方式的情况(放心,考试中不会有这种很困惑的问题) 具体结果(略) * To know how to do something well is to enjoy it. 战略上藐视敌人,战术上重视敌人。 The trees that are slow to grow bear the best fruit. 认真复习、迎接考试 其他问题及相应解答 习题2.9 用自然语言给出下述正规式所描述的语言,并构造他们的最小DFA:10*1 (0|1)*011(0|1)* 说明:所谓用自然语言描述就是解释字符串的性质,一般情况下是已经有了形式化描述。 解: 10*1:首尾是1中间有零或若干个0的01串。 (0|1)*011(0|1)* :至少含一个011的01串。 注意:绝对不允许用正规式表示,因为正规式是已知条件 习题3.6 设字母表Σ={0,1},设计下述语言的文法。对于正规语言, 可用正规式表示。 (1)每个0后面至少跟随一个1的字符串 (2)0和1个数相等的字符串 (3)0和1个数不相等的字符串 (4)不以011作为子串的字符串 解:(1)(01|1)* (2)S→0S1S|1S0S|ε (3)S→A0A|B1B A→0A1A|1A0A|0A|ε B→0B1B|1B0B|1B|ε (4)1*(0|01)* 《编译原理》复习 * 课程内容 要求(希望) 牢固掌握基本概念 灵活使用基本方法 归纳总结所学内容(锻炼提高抽象能力) 一、引言 二、词法分析 三、语法分析 四、语义分析—语法制导翻译生成中间代码 学习不能走捷径,付出多少劳动就有多少收获。 掌握正确的学习方法,学会联想与归纳总结。

文档评论(0)

502992 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档