《编译程序设计原理》练习题.pptVIP

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
习题 1-1 参照文法, E → E + E | E * E | ( E ) | I 写出以下表达式的生成过程(最左派生、最右派生): i * ( i + i ) * i 1-3 给定文法如下: E → T | E + T | E - T T → F | T * F | T / F F → ( F ) | i 画出表达式 i*(i+i)+i 的分析树 1-4 判断上题的文法属于哪个类型的文法?为什么? 例2-1(1/2) DOS 命令 date 的输出格式 例:9-2-1993、09-03-1993、9-03-93 语法 date → month - day - year 词法 month → DIGIT DIGIT | DIGIT day → DIGIT DIGIT | DIGIT year → DIGIT DIGIT | DIGII DIGIT DIGIT DIGIT 例2-1(2/2) 语义 year(年)、month(月)、day(日) 语义约束条件 0 month.value 13 0 day.value 32,31,30 0 year.value 10000 习题 2-1 试分析一个简短的 C 程序,找出几个属于语法、词法、语义的语言现象。 2-2 试分析例 2-1 的 date 输出数据的处理中,应该做哪些词法分析、语法分析、语义处理。 2-3 理解交叉编译和自展技术 习题 P97 练习3.1~3.2;3.3,3.4选做 练习3.5~3.13——有能力者可以完成 3-1 构造下列正规式的状态图 a ( ( a | b )* | a b* a )* b 3-2 给出下述文法所对应的正规式 S → 0 A | 1 B A → 1 S | 1 (01|10)* B → 0 S | 0 3-3 文法G[单词]为: 单词 → 标识符 | 整数 标识符 → 标识符 字母 | 标识符 数字 | 字母 整数 → 整数 数字 | 数字 字母 → A | B | … | Y | Z 数字 → 1 | 2 | … | 8 | 9 | 0 将该文法改写为正规文法 3-4 上机题 合并例3-3和例3-4的状态图,设计并实现一个词法分析函数,每次返回一个单词种别和属性;编制主程序完成测试(输入和输出)。 1~3章自测题 1、设 r=(1|0)*0((0|1|2)2|(0|1|2) 3)(0|1|2|3|4|5|6|7|8|9)8 求RG G 和FA M使得L(M)=L(G)=L(r) 2、构造算术表达式的文法G,并且 1) 指出各语法变量的意义 2) 求 x+log( |sin(y)| +b4) 最左推导、最右推导 3) 求 x+log( |sin(y)| +b4) 的语法树 3、叙述下列概念的定义和意义 前缀、文法、直接推导、规范归约、短语、句柄、正规式、正规定义式、种别码与属性值、双缓冲 4、编译程序的总体结构及各模块的功能;编译程序的实现方法;如何根据FA实现扫描器? 习题: 4-1 改写以下文法,消除左递归 M → M a H | H H → b ( M ) | ( M ) | b 4-2 求以下文法中各非终结符的FIRST集和FOLLOW集 A → b a B | ? B → A b b | a 4-3 构造如下给定文法的递归子程序 S → a|↑|( T ) T → T,S|S 上机题 4-4 给定下列文法: S→id=E; S→if C then S S→while C do S C→EE C→E=E 用递归子程序法设计并实现语法分析程序,按照生成顺序输出产生式 练习: P202~204 4.1~4.8 4-5 构造如下给定文法的预测分析表 S → A B A → B a|? B → D b|D D → d|? 4-6 判断下述文法可否改写为 LL(1)文法 a. S→A|B A→aA|a B→bB|b b. S→i|(E) E→E+S|E-S|S 思考题 4-7 能否直接用语法图描述 E→E+E|E-E|E*E |E/E|-E|(E)|id|const,并用递归子程序法实现语法分析?为什么? 4-8 能否将各种单词的文法直接并入表达式语法,进行语法分析处理?试分析这样做会有哪些好的影响和不好的影响。 练习 P204:4.9~4.13 4-9 给出布尔表达式的文法,构造其算符优先关系表 bexpr → bexpr OR bexpr bexpr → bexpr AND bexpr bexpr → NOT bexpr bexpr →( bexpr ) be

文档评论(0)

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

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

1亿VIP精品文档

相关文档