收藏 分享(赏)

编译原理课程第3讲.ppt

上传人:nacm35 文档编号:10174185 上传时间:2019-10-16 格式:PPT 页数:65 大小:1.12MB
下载 相关 举报
编译原理课程第3讲.ppt_第1页
第1页 / 共65页
编译原理课程第3讲.ppt_第2页
第2页 / 共65页
编译原理课程第3讲.ppt_第3页
第3页 / 共65页
编译原理课程第3讲.ppt_第4页
第4页 / 共65页
编译原理课程第3讲.ppt_第5页
第5页 / 共65页
点击查看更多>>
资源描述

1、温故知新 源程序字符流 顺序组合 词法单元 词法记号 模式 非形式化描述 形式化描述 正规式 字母 组合 串 语言 集合 集合 字母表 名字 连接 指数 和 LUM 连接 LM 闭包 L* 正闭包 L+ ? 计算机实现 状态转换图 2.2 词法记号的描述与识别 2.2.4 转换图 关系算符的转换图 0 5 1 6 2 4 8 3 7 return(relop, LE) return(relop, NE) return(relop, LT) return(relop, GE) return(relop, GT) return(relop, EQ) 开始 = = * * other other r

2、elop | | = 2.2 词法记号的描述与识别 标识符和保留字的转换图 9 10 11 开始 letter other * letter或 digit return(install_id( ) id letter (letter | digit )* 1、检查保留字表,如果在表中发现该词法单元则返回相应的记号并退出,否则转向 2 2、该词法单元是标识符,在符号表中查找,若找到该词法单元则返回该条目的指针并退出,否则执行 3 3、在符号表中建立一个新的条目,把该词法单元填入,并返回此新条目的指针 2.2 词法记号的描述与识别 无符号数的转换图 开始 19 12 13 14 15 16 17

3、18 digit digit digit digit digit digit other . E +/ E digit other other return( install_num( ) ) * num digit+ (.digit+)? (E (+ | )? digit+)? 2.2 词法记号的描述与识别 空白 的转换图 delim blank | tab | newline ws delim+ 21 22 开始 delim other * delim 20 2.3 有 限 自 动 机 正规式 计算机实现 状态转换图 ? 有限自动机 不确定有限自动机 确定有限自动机 等价 2.3 有 限

4、自 动 机 识别器:是一个程序,取串 x作为输入,当x是语言的句子时,它回答“是”,否则回答“不是”。 状态转换图(有限自动机) 识别器 确定 /不确定有限自动机 时空权衡问题 确定 有限自动机 :快,空间大 2.3 有 限 自 动 机 2.3.1 不确定的有限自动机 ( 简称 NFA) 一个数学模型 , 它包括 : 状态集合 S; 输入符号集合 ; 转换函数 move : S () P(S); 状态 s0是开始状态; F S是接受状态集合 。 1 2 开始 a 0 a b b 识别语言 (a|b)*ab 的 NFA 缺点: 1、输入字符包括 2、一个状态对于某个字符,可能有多条输出边 2.3

5、 有 限 自 动 机 1 2 开始 a 0 a b b 识别语言 (a|b)*ab 的 NFA 输 入 符 号 a b 0 0, 1 0 1 2 2 状 态 NFA的转换表 优点:快速定位 缺点:字母表过大或大部分转换状态为空集时浪费空间 2.3 有 限 自 动 机 例 识别 aa*|bb*的 NFA 1 2 开始 a 0 a b b 3 4 2.3 有 限 自 动 机 2.3.2 确定的有限自动机(简称 DFA) 一个数学模型,包括: 状态集合 S; 输入字母表 ; 转换函数 move : S S; 唯一的初态 s S; 终态集合 F S; 1 2 开始 a 0 a b b a b 识别语言

6、 (a|b)*ab 的 DFA 优点: 1、输入字符不包括 2、一个状态对于某个字符,只可能存在唯一条输出边 2.3 有 限 自 动 机 2.3.3 NFA到 DFA的变换 子集构造法 DFA的一个状态是 NFA的一个状态集合 读了输入 a1 a2 an后 , NFA能到达的所有状态: s1, s2, , sk, 则 DFA到达状态 s1, s2, , sk 1 2 开始 a 0 a b b 2.3.3 NFA到 DFA的变换 子集构造法 1、 DFA的一个状态是 NFA的一个状态集合 2、读了输入 a1 a2 an后 , NFA能到达的所有状态: s1, s2, , sk, 则 DFA到达状

7、态 s1, s2, , sk 1 2 a 开始 0 a b b 0 0, 1 a 2.3 有 限 自 动 机 2.3.3 NFA到 DFA的变换 子集构造法 1、 DFA的一个状态是 NFA的一个状态集合 2、读了输入 a1 a2 an后 , NFA能到达的所有状态: s1, s2, , sk, 则 DFA到达状态 s1, s2, , sk 1 2 a 开始 0 a b b 0 0, 1 a b 2.3 有 限 自 动 机 2.3.3 NFA到 DFA的变换 子集构造法 1、 DFA的一个状态是 NFA的一个状态集合 2、读了输入 a1 a2 an后 , NFA能到达的所有状态: s1, s2

8、, , sk, 则 DFA到达状态 s1, s2, , sk 1 2 a 开始 0 a b b 0 0, 1 a b a 2.3 有 限 自 动 机 2.3.3 NFA到 DFA的变换 子集构造法 1、 DFA的一个状态是 NFA的一个状态集合 2、读了输入 a1 a2 an后 , NFA能到达的所有状态: s1, s2, , sk, 则 DFA到达状态 s1, s2, , sk 1 2 a 开始 0 a b b 0 0, 1 a b a 0, 2 b 2.3 有 限 自 动 机 2.3.3 NFA到 DFA的变换 子集构造法 1、 DFA的一个状态是 NFA的一个状态集合 2、读了输入 a1

9、 a2 an后 , NFA能到达的所有状态: s1, s2, , sk, 则 DFA到达状态 s1, s2, , sk 1 2 a 开始 0 a b b 0 0, 1 a b a 0, 2 b 2.3 有 限 自 动 机 a b 2.3 有 限 自 动 机 1 9 开始 0 a b a b 6 7 8 2 3 4 5 输入符号 a b 状态 2.3 有 限 自 动 机 1 9 开始 0 a b a b 6 7 8 2 3 4 5 输入符号 a b A 状态 A = 0, 1, 2, 4, 7 2.3 有 限 自 动 机 1 9 开始 0 a b a b 6 7 8 2 3 4 5 输入符号 a

10、 b A B 状态 A = 0, 1, 2, 4, 7 B = 1, 2, 3, 4, 6, 7, 8 2.3 有 限 自 动 机 1 9 开始 0 a b a b 6 7 8 2 3 4 5 输入符号 a b A B B 状态 A = 0, 1, 2, 4, 7 B = 1, 2, 3, 4, 6, 7, 8 2.3 有 限 自 动 机 1 9 开始 0 a b a b 6 7 8 2 3 4 5 输入符号 a b A B C B 状态 A = 0, 1, 2, 4, 7 B = 1, 2, 3, 4, 6, 7, 8 C = 1, 2, 4, 5, 6, 7 2.3 有 限 自 动 机 1

11、 9 开始 0 a b a b 6 7 8 2 3 4 5 输入符号 a b A B C B C 状态 A = 0, 1, 2, 4, 7 B = 1, 2, 3, 4, 6, 7, 8 C = 1, 2, 4, 5, 6, 7 2.3 有 限 自 动 机 1 9 开始 0 a b a b 6 7 8 2 3 4 5 输入符号 a b A B C B B C 状态 A = 0, 1, 2, 4, 7 B = 1, 2, 3, 4, 6, 7, 8 C = 1, 2, 4, 5, 6, 7 2.3 有 限 自 动 机 1 9 开始 0 a b a b 6 7 8 2 3 4 5 输入符号 a b

12、 A B C B B D C 状态 A = 0, 1, 2, 4, 7 B = 1, 2, 3, 4, 6, 7, 8 C = 1, 2, 4, 5, 6, 7 D = 1, 2, 4, 5, 6, 7, 9 2.3 有 限 自 动 机 1 9 开始 0 a b a b 6 7 8 2 3 4 5 输入符号 a b A B C B B D C D 状态 A = 0, 1, 2, 4, 7 B = 1, 2, 3, 4, 6, 7, 8 C = 1, 2, 4, 5, 6, 7 D = 1, 2, 4, 5, 6, 7, 9 2.3 有 限 自 动 机 1 9 开始 0 a b a b 6 7

13、8 2 3 4 5 输入符号 a b A B C B B D C B C D 状态 A = 0, 1, 2, 4, 7 B = 1, 2, 3, 4, 6, 7, 8 C = 1, 2, 4, 5, 6, 7 D = 1, 2, 4, 5, 6, 7, 9 2.3 有 限 自 动 机 1 9 开始 0 a b a b 6 7 8 2 3 4 5 输入符号 a b A B C B B D C B C D B C 状态 A = 0, 1, 2, 4, 7 B = 1, 2, 3, 4, 6, 7, 8 C = 1, 2, 4, 5, 6, 7 D = 1, 2, 4, 5, 6, 7, 9 2.3 有 限 自 动 机 B D 开始 a A a b b a b C b a 1 9 开始 0 a b a b 6 7 8 2 3 4 5 输入符号 a b A B C B B D C B C D B C 状态 2.3 有 限 自 动 机 B D 开始 a A a b b a b C b a 1 2 开始 a 0 a b b a b 1 9 开始 0 a b a b 6 7 8 2 3 4 5 识别语言 (a|b)*ab 的 自动机

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报