1、第三章词法分析 词法分析 词法分析程序概述正规文法与正规式有穷自动机正规式与有穷自动机的等价性正规文法与有穷自动机的等价性一个简单的词法分析器示例 3 4正规式与有穷自动机的等价性 1 对于字母表 上的NFAM 可以构造一个 上的正规式R 使得L R L M 2 对于字母表 上的每个正规式R 可以构造一个 上的NFAM 使得L M L R 在消结过程中 逐步用正规式来标记弧 规则如下 1 对于代之为2 对于代之为3 对于代之为 R1 R2 1 2 3 3 4正规式与有穷自动机的等价性 1 NFAM 正规式R 例如 有NFAM如图3 14 求其等价的正规式R 1 在M上加两个结点S Z 从S结点
2、用 弧到M的所有初态 从M的所有终态用 到Z结成与M等价的M M 只有一个初态S和一个终态Z 2 逐步消去M 中的所有结点 直至剩下S和Z结点 3 4正规式与有穷自动机的等价性 3 消除M中的所有结点 加x y 3 4正规式与有穷自动机的等价性 3 4正规式与有穷自动机的等价性 课堂练习 4 3 5 2 1 a a a a b b b b 求以下NFA的正规式 第一步 第二步 3 4正规式与有穷自动机的等价性 第三步 第四步 课堂讲解 例5 12 第72页 例5 13 第73页 2 正规式R NFAM 1 对NFAM构造一个广义的状态图 其中只有一个初态S和终态Z 连接S和Z的有向弧标记为正规
3、式 2 对正规式依次进行分解 分解的过程是一个不断加入结点和弧的过程 直到转换图上的所有弧标记上都是字母表 上的元素或 为止 3 4正规式与有穷自动机的等价性 若s t为 上的正规式 a 对于正规式R st b 对于正规式R s t c 对于正规式R rs t 3 4正规式与有穷自动机的等价性 A S a b abb 例 为R a b abb构造NFA 使得L N L R 3 4正规式与有穷自动机的等价性 3 4正规式与有穷自动机的等价性 课堂练习 构造a b c c b 的NFA 课堂练习 构造 a b aa bb a b 的NFA 3 4正规式与有穷自动机的等价性 1 对于NFAM 存在一
4、个右线性文法 左线性文法 G 使得L G L M 2 对于右线性文法 左线性文法 G 可以构造一个NFAM 使得L M L G 3 5正规文法与有穷自动机的等价性 1 NFA 正规文法 1 NFA的字母表为文法的终结符号集 2 NFA的状态集为文法的非终结符号集 3 NFA的初态对应于文法的开始符号 4 NFA的转换函数f A t B 写成一个产生式A tB 5 对NFA的终态Z 增加一个产生式Z 3 5正规文法与有穷自动机的等价性 例 给出如图NFA等价的正规文法G G A B C D a b P A 其中P A aBA bDB bCC aAC bDC D aBD bDD 3 5正规文法与有穷自动机的等价性 格式G Vn Vt P S 3 5正规文法与有穷自动机的等价性 课堂练习 D C E B A a a a a b b b b 给出如图NFA等价的正规文法G 应进一步化简 bye