编译原理-作业答案.docx

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《编译原理》第一次作业参考答案 下列正则表达式定义了什么语言(用尽可能简短的自然语言描述)? bR(abRabR)R 所有含有偶数个 a的由a和b组成的字符串. cRa(a|c)Rb(a|b|c)R|cRb(b|c)Ra (a|b|c)R 答案一:所有至少含有 1个a和1个b的由a,b和c组成的字符串. 答案二:所有含有子序列 ab或子序列ba的由a,b和c组成的字符串. 说明:答案一要比答案二更好,因为用自然语言描述是为了便于和非专业的人员交流,而非专业人员很可 能不知道什么是“子序列”,所以相比较而言,答案一要更“自然” 设字母表 号{a,b},用正则表达式(只使用 a, b, ;, | , R, +,?)描述下列语言: 不包含子串ab的所有字符串. bRaR 不包含子串abb的所有字符串. bR(ab?)R 不包含子序列abb的所有字符串. bRaRb?aR 注意:关于子串(substring和子序列(subsequence的区别可以参考课本第 1佃页方框中的内容. ?\(仝 ?~\(仝 ?~\(仝 )/~~\(仝 )/~~\(仝 )/~~\(仝 )/~~\(仝 )/~~\(仝 ? 《编译原理》第二次作业参考答案 考虑以下NFA 这一 NFA接受什么语言(用自然语言描述)? 所有只含有字母 a和b,并且a出现偶数次或b出现偶数次的字符串 构造接受同一语言的 DFA. 答案一(直接构造通常得到这一答案) : start start 正则语言补运算 画出一个DFA该DFA恰好识别所有不含 011子串的所有二进制串 Qfl 画出一个DFA该DFA恰好识别所有不含 011子串的所有二进制串 start start 规律:构造语言L的补语言L的DFA可以先构造出接受 L的DFA再把这一 DFA的接受状态改为非接受 状态,非接受状态改为接受状态,就可以得到识别 L的DFA. 说明:在上述两题中的 D状态,无论输入什么符号, 都不可能再到达接受状态, 这样的状态称为“死状态”. 在画DFA时,有时为了简明起见, “死状态”及其相应的弧(上图中的绿色部分)也可不画出 再证明:对任一正则表达式 R, —定存在另一正则表达式 R,使得L(R)是L(R)的补集. 证明:根据正则表达式与 DFA的等价性,一定存在识别语言 L(R)的DFA.设这一 DFA为M则将M的所有接 受状态改为非接受状态, 所有非接受状态改为接受状态, 得到新的DFAMI .易知M识别语言L(R)的补集. 再由正则表达式与 DFA的等价性知必存在正则表达式 R,使得L(R)是L(R)的补集. 设有一门小小语言仅含 z、o、/ (斜杠)3个符号,该语言中的一个注释由 / o开始、以0/结束,并且注释 禁止嵌套? 请给出单个正则表达式,它仅与一个完整的注释匹配,除此之外不匹配任何其他串 .书写正则表达式时, 要求仅使用最基本的正则表达式算子( ;,|,R, +,?). 参考答案一:/o(oRz|/)Ro+/ 思路:基本思路是除了最后一个 0/,在注释中不能出现 0后面紧跟着/的情况;还有需要考虑的是最后一 个0/之前也可以出现若干个 0. 参考答案二(梁晓聪、梁劲、梁伟斌等人提供) :/0/R(z/R|o)Ro/ 给出识别上述正则表达式所定义语言的确定有限自动机( DFA .你可根据问题直接构造 DFA不必运用机 械的算法从上一小题的正则表达式转换得到 DFA. ?\(話 ?\(話 W )/~~\(話 W )/~~\(仝 )/~~\(仝 )/~~\(仝 )/~~\(話 W )/~~\(話 W )/~~\(話 W )/~ 《编译原理》第三次作业参考答案 一、考虑以下DFA的状态迁移表,其中 0, 1为输入符号,A~H代表状态: 0 1 A B A B A C C D B D D A E D F F G E G F G H G D 其中A为初始状态,D为接受状态,请画出与此DFA等价的最小 其中A为初始状态,D为接受状态,请画出与此 DFA状态的子集. start10HU E start 1 0 H U E 说明:有些同学没有画出状态 H,因为无法从初始状态到达状态 H.从实用上讲,这是没有问题的 .不过,如果 根据算法的步骤执行,最后是应该有状态 H的. 考虑所有含有3个状态(设为p, q, r )的DFA?设只有r是接受状态?至于哪一个状态是初始状态与本问题无 关.输入符号只有0和1.这样的DFA总共有729种不同的状态迁移函数,因为对于每一状态和每一输入符号, 可能迁移到3个状态中的一个,所以总共有 3A6=729种可能.在这729个DFA中,有多少个p和q是不可区分 的(indistinguishable )?解释你的答案. 解:考虑对于p和q,在输入符号为0时的情

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档