第三四章习题课编译原理.pptVIP

  1. 1、本文档共65页,可阅读全部内容。
  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文档。上传文档
查看更多
第三、四章习题 P64:7,8,9,12,14,15,20,补充题 P81:1,2,3,4,5 词法分析 正规式 正规式与正规文法的转化 正规式转化为NFA(1/2) (1)引进初始结点 X 和终止结点 Y,把 R 表示成拓广转换图。如图 正规式转化为NFA(2/2) NFA确定化为DFA 首先将从初态 S 出发经过任意条 ? 弧所能到达的状态所组成的集合作为 M 的初态 S’,然后从 S’ 出发,经过对输入符号 a?? 的状态转移所能到达的状态(包括读输入符号之前或之后所有可能的 ? 转移所能到达的状态)所组成的集合作为 M 的新状态,如此重复,直到不再有新的状态出现为止。 DFA的化简 将 DFA M 的状态集 Q 分成两个子集:终态集 F 和非终态集 ?F,形成初始分划 ? 。 对 ? 建立新的分划 ?new。对 ? 的每个状态子集 G 进行如下变换: 把 G 分划成新的子集,使得 G 的两个状态 s 和 t 属于同一子集,当且仅当对任何输入符号 a,状态 s 和 t 转换到的状态都属于 ? 的同一子集。 用 G 分划出的所有新子集替换 G,形成新的分划 ?new 。 如果 ?new=?,则执行第(4)步;否则令?=?new,重复第(2)步。 分划结束,对分划中的每个状态子集,选出一个状态作代表,而删去其它一切等价的状态,并把射向其余状态的箭弧都改为射向作为“代表”的状态。 正规文法转化为自动机(1/2) 设给定一个右线性正规文法 G=(VN,VT,P,S),则相应的有穷自动机 M=(Q,?,f,q0,Z) (1)将VN中的每一个非终结符视作 M 中的一个状态, 并增加一个新终态 D,且 D?VN, 令 Q=VN?{D},Z={D},?=VT,q0=S (2)对 A?aB(A,B?VN,a?VT ?{?}),令f(A,a)=B。 构造弧 (3)对 A?a(A?VN,a?VT ?{?}),令f(A,a)=D。 构造弧 正规文法转化为自动机(2/2) 设给定一个左线性正规文法 G=(VN,VT,P,S),则相应的有穷自动机 M=(Q,?,f,q0,Z) (1)将VN中的每一个非终结符视作 M 中的一个状态, 并增加一个初始状态 q0,且 q0?VN, 令 Q=VN?{q0},Z={S},?=VT (将文法G的开始符号S看成终态) (2)对 A?Ba(A,B?VN,a?VT ?{?})令f(B,a)=A。 构造弧 (3)对 A?a(A?VN,a?VT ?{?}),令f(q0,a)=A。 构造弧 自动机转化为正规文法(1/2) 设给定有穷自动机 M=(Q,?,f,q0,Z),按照下述方法可 以从 M 构造出相应的右线性正规文法 G=(VN,VT,P,S), 使得L(M)=L(G) (1)令 VN=Q,VT=?,S=q0 (2)若f(A,a)=B且B?Z时, 则将规则 A?aB 加到P中。 (3)若f(A,a)=B且B?Z时,则将规则 A?aB?a 或 A?aB, B?ε 加到P中。 (4)若文法的开始符号 S 是一个终态,则将规则 S?ε 加到P中。 自动机转化为正规文法(1/2) 设给定有穷自动机 M=(Q,?,f,q0,Z),按照下述方法可 以从 M 构造出相应的左线性正规文法 G=(VN,VT,P,S), 使得L(M)=L(G) (1)令 VN=Q,VT=?,S=Z (2)若f(S,a)=A,则A?a|Sa (3)若f(A,a)=B,则B?Aa(A≠S) 习题7(1/4) 7、构造下列正规式的相应的DFA 1(0|1)*101 解题步骤: 1.由正规式R构造NFA N 2.构造确定化后的DFA的状态矩阵 3.生成确定化后的DFA的状态转换图 4.化简DFA 习题7(2/4) 由正规式构造NFA 构造确定化后的DFA的状态矩阵 习题7(4/4) 化简DFA 习题8(1/3) 8、给出下面正规表达式 (1)以01结尾的二进制数串; (2)能被5整除的十进制整数; (3)包含奇数个1或者奇数个0的二进制数串; (7)不包含子串abb的由a和b组成的符号串的全体。 习题8(2/3) 解: (1)末两位是01,其他位为0、1组成的任意的字符串。 (a|b)*表示a、b组成的任意字符串。 所以正规表达式为(0|1)*01。 (2) ①若是一位数,为0或5 ②若是多于一位的数,为 (1|2|3|…|9)(0|1|2|…|9)*(0|5) 所以正规表达式为(1|2|3|…|9)(0|1|2|…|9)*(0|5)|0|5 习题8(3/3) (3) 奇数个1:0*1(0|10*1)* 奇数个0:1*0(1|01*0)* 所以正则表达式为 0*1(0|10*1)*| 1*0(

文档评论(0)

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

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

1亿VIP精品文档

相关文档