西电编译原理_第二章习题解答

上传人:简****9 文档编号:111935238 上传时间:2019-11-04 格式:PPT 页数:14 大小:523.50KB
返回 下载 相关 举报
西电编译原理_第二章习题解答_第1页
第1页 / 共14页
西电编译原理_第二章习题解答_第2页
第2页 / 共14页
西电编译原理_第二章习题解答_第3页
第3页 / 共14页
西电编译原理_第二章习题解答_第4页
第4页 / 共14页
西电编译原理_第二章习题解答_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《西电编译原理_第二章习题解答》由会员分享,可在线阅读,更多相关《西电编译原理_第二章习题解答(14页珍藏版)》请在金锄头文库上搜索。

1、西安电子科技大学 软件学院 编译原理 第二章 部分习题解答 西安电子科技大学 软件学院 第2章习题 1. 根据模式,写出正规式 2. 依据 NFA/DFA,写出正规式 2 难点 3. 正规式NFA 4. NFADFA: _闭包,smove 5. DFA最小化 计算量大 西安电子科技大学 软件学院 1. 根据模式写出正规式 一般思路:(1)分析题意 (2)列举一些最简单的例子 (3)寻找统一规律*,考虑所有可能情况* 习题2.4 (1) 由偶数个0和奇数个1构成的01串 解: 最简单的串有 0个0和1个1组成的串: 2个0和1个1组成的串: 在上述串的中间、两头添加偶数个0和/或偶数个1,即可

2、得到满足题意的其他串。 设偶数个0/偶数个1组成的串,可用正规式 A 表示,则最 终正规式: A1A | A0A1A0A 1 010 ,001,100 * 关键:如何构造正规式 A ? 3 西安电子科技大学 软件学院 习题2.4 (1) 由偶数个0和奇数个1构成的01串 构造正规式 A(偶数个0/偶数个1) a) 长度为2: 00, 11 长度为4:0011, 1100, 0101, 0110, 1001, 1010 b) 前4个串: 由00和11组成的串 正规式B*, B= 00 | 11 c) 后4个串: 由01和10组成的串 正规式C*, C= 01|10 d) 修改正规式C为D: A

3、= (B*|C*)* = (00 | 11|01|10)* 考虑:0001 D = (01|10) (01|10) (00|11)* 最终A = (B|D)* = ( (00|11) | (01|10) (00|11)* (01|10) )* ? 4 1. 根据模式写出正规式 (1) 分析题意 (2)列举一些最简单的例子 (3)寻找规律,考虑所有可能情况 西安电子科技大学 软件学院 (1) 最简单的串: (2) 上述各串重复: (0 | 00 | 01 | 010 )* = (01 | 0)* (3) 再考虑:仅由1组成的串,或 若干1打头的串。 最终的正规式: 习题2.4 (2) 所有不含有

4、子串 011 的01串 思路1:简单例子,观察规律 5 1* | 1*(01|0)* = 1*(01|0)* 1. 根据模式写出正规式 0 , 1, 11, 00, 10, 01, 010, 西安电子科技大学 软件学院 含有 子串 011 的最简单的串: 其中插入若干个0 (注意11之间应至少插入1个0), 即可不出现“011”, 正规式为: (0+1) (0+1) 0* 即:每个1前面至少1个0,正规式化简为: (01 | 0)* 再考虑:仅由1组成的串,或 若干1打头的串。 最终的正规式: 1*(01|0)* 0 1 1 习题2.4 (2) 所有不含有子串 011 的01串 0*0 0*

5、0* 0* 思路2:考虑包含 011 的串,然后构造没有011的串 6 1. 根据模式写出正规式 西安电子科技大学 软件学院 习题2.4 (4) 块注释 /* */ 。其中 中不含有 子串 */ 。 思路:简单例子,观察规律。 关键:注释中若出现 *:若紧跟的是/则结束注释, 否则仍然是注释。 注释为空: 考虑没有 * 的注释: 考虑含 * 的注释: 以上情况 进行或运算,可得: /* */ /* * */ /* (*/)* */ 考虑:中间可有若干连续 *,可得最终正规式: “/*“ (*|*/)* * “*/“ 7 1. 根据模式写出正规式 /* ( * | */ )* */ /* ( *

6、 | */ )* */*/ )* */ 西安电子科技大学 软件学院 2.依据NFA/DFA,给出正规式 思路1: 回顾“正规式 与 FA的关系” 正规式、FA是从两个不同的侧面表示一个集合(即正 规集)。所以,根本的方法是以正规集为桥梁, - 先分析清楚 FA 识别的集合之结构特征, - 然后再设计此集合的正规式。 8 西安电子科技大学 软件学院 2.依据NFA/DFA,给出正规式 思路2:根据FA直接写出对应的正规式。其考查重点、步骤: 考查“FA之状态图的结构与正规式运算的关系” (1) 从同一状态出发的 多条边/路径: (3) 环: (2) 同一个状态的入边 和 出边: a | b ab

7、 然后据上,考查每条从初态到终态的路径,综合正规式即可。 重复0次或多次: *,至少重复1次: + 9 西安电子科技大学 软件学院 2.依据NFA/DFA,给出正规式 习题2.10 (2) 用正规式描述 DFA 所接受的语言; 该DFA从初态到终态有三条路径:0b2,0c2,0a1b2 用正规式表示为: b | c | a(a|c)*b, 而且是这三条路径均至少重复一次, 故最终的正规式为:(b|c|a(a|c)*b)+ 10 西安电子科技大学 软件学院 其它 11 习题2.9 用自然语言给出下述正规式所描述的语言,并构造 他们的最小DFA: 10*1(0|1)*011(0|1)* 说明:所谓

8、用自然语言描述就是解释字符串的特点。 注意:绝对不允许用正规式表示,因为正规式是已知条件. 解: 10*1:首尾是1、中间有零或若干个0的01串。 (0|1)*011(0|1)* :至少含一个011的01串。 西安电子科技大学 软件学院 其它 12 关于:正规式 - NFA - DFA - DFA最小化: 说明:(一般)逐步计算 正规式-NFA: (1)呆板Thompson算法: 自上而下分解正规式 语法树, 自下而上构造NFA 后续遍历; 特点:每个运算对应一次构造,繁琐! (2)活用Thompson算法: 分解正规式:得到若干规模适中的子正规式; 为每个子正规式:画出其最简的状态转换图(子

9、图); 按Thompson算法,将子图组合,得到完整的图。 西安电子科技大学 软件学院 其它 13 关于:正规式 - NFA - DFA - DFA最小化: 说明:(一般)逐步计算 NFA-DFA(子集法):关键点: (1) _闭包(NFA初态), 即DFA的初态; (2) 计算 DFA的状态转移(同时得到DFA的其它状态); * 借助状态转换矩阵登记:DFA状态、状态转移。 (3) DFA终态:包含NFA终态的状态集。 DFA最小化:关键点: (1) 初始划分:终态组,非终态组; (2) 结合状态转换矩阵,分裂每个状态组; (3) 选代表:修改状态转换矩阵,删除重复的行; (4) 结合新的状态转换矩阵,画状态图,删死/不可达状态. 西安电子科技大学 软件学院 其它 14 习题2.9 构造 10*1 的最小DFA 解: 活用 Thompson 算法 (1) 分解为三部分:1,0*,1; (2) 画出三者的状态转换图: (3) 连接运算:子图首尾相连 01 1 34 1 2 0 01 1 0 4 1 1这已经是最小的DFA

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号