6.第三章词法分析.pptVIP

  • 6
  • 0
  • 约7.71千字
  • 约 37页
  • 2016-08-11 发布于重庆
  • 举报
6.第三章词法分析

小结 本次课主要讲解了相关概念:DFA、NFA NFA的确定化(子集法) * FA等价性证明2步: 子集法(3) (3) 构造一张状态转换子集表。设∑={ a1,a2, …, ak } ① 第一行第一列为 I =ε_CLOSUR(X),X是唯一的初态;以此 I 求 Ia1,Ia2,…,Iak。 ② 把没有在第一列出现过的Iai填入空行第一列,以此 Iai为新的 I,再求 Ia1,Ia2,…,Iak。 ③ 重复②的过程,直到所有求出的 Iai 都在第一列出现为止。 I Ia1 Ia2 ………… Iak ε_CLOSUR(X) …… FA等价性证明2步: 子集法例 对图3.6的NFA构造一张状态子集表。∑={ a, b } a 5 Y ε 1 2 ε a 6 a a ε ε b X b 3 4 b b I Ia Ib { X, 5, 1} 初 0 { 5, 3, 1} 1 { 5, 4, 1} 2 { 5, 3, 1} 1 { 5, 3, 1, 2, 6, Y} 3 { 5, 4, 1 } 2 { 5, 4, 1} 2 { 5, 3, 1} 1 { 5, 4, 1, 2, 6, Y} 5 { 5, 3, 1, 2, 6, Y} 终3 { 5, 3, 1, 2, 6, Y} 3 { 5, 4, 1, 6, Y} 4 { 5, 4, 1, 6,Y} 终 4 { 5, 3, 1, 6, Y} 6 { 5, 4, 1, 2, 6, Y} 5 { 5, 3, 1, 6, Y} 终6 { 5, 3, 1, 2, 6, Y} 3 { 5, 4, 1, 6, Y} 4 { 5, 4, 1, 2, 6, Y} 终5 { 5, 3, 1, 6, Y} 6 { 5, 4, 1,2,6,Y} 5 * FA等价性证明2步: 子集法(4) 2. 将NFA M’变换为DFA M”---子集构造法 (4) 由状态子集表构造DFA的状态转换表。 ① NFA M’的每个状态子集是DFA M”的一个状态 --- 重新编号。 ② DFA M”唯一的初态是ε_CLOSUR(X) 对应的状态子集。 ③ DFA M”的终态是含有原来的终态Y的状态子集。 (5) 如此, 构造出了DFA M”, 从构造过程可知, M”满足: L(M”)=L(M’)=L(M)。 * NFA的确定化(子集法):例3.3 例3.3 正规式(a|b)*(aa|bb)(a|b)*,对应的NFA见P49.图3.6,转换得到等价的DFA见P51.图3.8。 注1:子集法进行确定化的关键在于构造状态转换表,即正确求出各个Ia。 注2:如果NFA只有一个初态,则不必引入新的初态结X,新的终态结Y可以不引入以简化求Ia 的工作。 a a 4 a a a b a b 0 b b 1 2 6 3 5 b b a b a * NFA确定化:练习1 设有NFA M=({x,y},{a,b},δ,x,{y}), 其中δ定义如下: δ(x,a)={x,y} δ(x,b)={y} δ(y,a)=φ δ(y,b)={x,y} 试构造相应的 DFA M’。 I Ia Ib {x} 0 {X,y} 1 {y} 2 {x,y} 1 {x,y} 1 {x,y} 1 {y} 2 {x,y} 1 a x b y a b b NFA a,b a 0 2 1 b b DFA * 给出接受在字母表{0,1}上所有以00结束的串的DFA: NFA确定化:练习2 1 0 2 0 1 0 1 0 1 DFA I I0 I1 {1} 0 {1,3} 1 {1} 0 {1,3} 1 {1,3,4}2 {1} 0 {1,3,4}2 {1,3,4}2 {1} 0 确定化 1 4 3 0 0 0 1 NFA Ch3.词法分析 Ch3.词法分析 第3章 词法分析(II) 词法分析(Lexical Analysis) 词法的表示 词法分析器的设计与实现 * 本章在编译程序中的地位 表 格 管 理 词法分析器 语法分析器 语义分析与中间代码产生 优化器 目标代码生成器 源程序 单词符号 语法单位 中间代码 中间代码 目标代码 出 错 处 理 * 回顾: 词法分析 任务:从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词符号。 逻辑上

文档评论(0)

1亿VIP精品文档

相关文档