编译原理 陈意云课件 第二章.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《编译原理 陈意云课件 第二章.ppt》由会员分享,可在线阅读,更多相关《编译原理 陈意云课件 第二章.ppt(72页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章第二章 词法分析词法分析本章内容本章内容词法分析器:把构成源程序的字符流翻译成词法分析器:把构成源程序的字符流翻译成记号流,记号流,还完成和用户接口的一些任务还完成和用户接口的一些任务围绕词法分析器的自动生成展开围绕词法分析器的自动生成展开介绍正规式、状态转换图和有限自动机概念介绍正规式、状态转换图和有限自动机概念词法分析器词法分析器语法分析器语法分析器符号表符号表记号记号(token)取下一个记号取下一个记号源程序源程序2.1 词法记号及属性词法记号及属性 2.1.1 词法记号、模式、词法单元词法记号、模式、词法单元 记号名记号名词法单元例举词法单元例举模式的非形式描述模式的非形式描述
2、 if if 字符字符i,f for for字符字符f,o,r relation ,=,=,或或 0)2.2 词法记号的描述与识别词法记号的描述与识别 语言的运算语言的运算并:并:L M=s|s L 或或 s M 连接连接:LM=st|s L 且且 t M幂:幂:L0是是,Li是是Li-1L 闭包:闭包:L =L0 L1 L2 正闭包:正闭包:L+=L1 L2 例例L:A,B,Z,a,b,z,D:0,1,9 L D,LD,L6,L*,L(L D)*,D+2.2 词法记号的描述与识别词法记号的描述与识别 2.2.2 正规式正规式正正规规式式用来表示简单的语言,用来表示简单的语言,叫做叫做正规集正
3、规集正规式正规式定义的语言定义的语言备注备注 a a a (r)|(s)L(r)L(s)r和和s是正规式是正规式(r)(s)L(r)L(s)r和和s是正规式是正规式(r)*(L(r)*r是正规式是正规式(r)L(r)r是正规式是正规式(a)(b)*)|(c)可以写成可以写成ab*|c 2.2 词法记号的描述与识别词法记号的描述与识别 正规式的例子正规式的例子 =a,ba|ba,b(a|b)(a|b)aa,ab,ba,bbaa|ab|ba|bbaa,ab,ba,bba*由字母由字母a构成的所有串集构成的所有串集(a|b)*由由a和和b构成的所有串集构成的所有串集复杂的例子复杂的例子(00|11|
4、(01|10)(00|11)(01|10)句子:句子:010011010000100000101110012.2 词法记号的描述与识别词法记号的描述与识别 2.2.3 正规定义正规定义对正规式命名,使表示简洁对正规式命名,使表示简洁 d1 r1 d2 r2.dn rn各个各个di的名字都不同的名字都不同每个每个ri都是都是 d1,d2,di-1 上的正规式上的正规式2.2 词法记号的描述与识别词法记号的描述与识别 正规定义的例子正规定义的例子C语言的标识符是字母、数字和下划线组成的串语言的标识符是字母、数字和下划线组成的串 letter_ A|B|Z|a|b|z|_ digit 0|1|9 i
5、d letter_(letter_|digit)*2.2 词法记号的描述与识别词法记号的描述与识别 正规定义的例子正规定义的例子 无符号数集合,例无符号数集合,例1946,11.28,63E8,1.99E 6digit 0|1|9digits digit digit*optional_fraction .digits|optional_exponent (E(+|)digits)|numberdigits optional_fraction optional_exponent 简化表示简化表示number digit+(.digit+)?(E(+|)?digit+)?2.2 词法记号的描述与识
6、别词法记号的描述与识别 正规定义的例子(进行下一步讨论的例子)正规定义的例子(进行下一步讨论的例子)while whiledo dorelop|=|=|=letter A|B|Z|a|b|z id letter(letter|digit)*number digit+(.digit+)?(E(+|)?digit+)?delim blank|tab|newline ws delim+2.2 词法记号的描述与识别词法记号的描述与识别 2.2.4 转换图转换图关系算符的转换图关系算符的转换图051624837return(relop,LE)return(relop,NE)return(relop,LT
7、)return(relop,GE)return(relop,GT)return(relop,EQ)开始开始=*otherother2.2 词法记号的描述与识别词法记号的描述与识别 标识符和关键字的转换图标识符和关键字的转换图91011开始开始letterother*letter或或digitreturn(installId()2.2 词法记号的描述与识别词法记号的描述与识别 无符号数的转换图无符号数的转换图 number digit+(.digit+)?(E(+|)?digit+)?开始开始1912131415161718digitdigitdigitdigitdigitdigitother.
8、E+/Edigitotherotherreturn(installNum()*2.2 词法记号的描述与识别词法记号的描述与识别 空白空白的转换图的转换图delim blank|tab|newline ws delim+2122开始开始delimother*delim202.3 有有 限限 自自 动动 机机 2.3.1 不确定的有限自动机(简称不确定的有限自动机(简称NFA)一个数学模型,它包括:一个数学模型,它包括:1、有限的状态集合、有限的状态集合S2、输入符号集合、输入符号集合 3、转换函数、转换函数move:S ()P(S)4、状态、状态s0是唯一的开始状态是唯一的开始状态5、F S是接
9、受状态集合是接受状态集合识别语言识别语言(a|b)*ab 的的NFA12开始开始a0abb输输 入入 符符 号号ab00,10122状状 态态 NFA的转换表的转换表2.3 有有 限限 自自 动动 机机 识别语言识别语言(a|b)*ab 的的NFA12开始开始a0abb2.3 有有 限限 自自 动动 机机 例例 识别识别aa*|bb*的的NFA12开始开始a0abb34 2.3.2 确定的有限自动机(简称确定的有限自动机(简称DFA)一个数学模型,包括:一个数学模型,包括:1、有限的状态集合、有限的状态集合S2、输入字母集合、输入字母集合 3、转换函数、转换函数move:S S,且可以是部分函
10、数且可以是部分函数4、唯一的开始状态、唯一的开始状态 s05、接受状态接受状态集合集合F S12开始开始a0abbab识别语言识别语言(a|b)*ab 的的DFA2.3 有有 限限 自自 动动 机机 2.3 有有 限限 自自 动动 机机 例例 DFA,识别,识别0,1上能被上能被5整除的二进制数整除的二进制数已读过已读过尚未读尚未读已读部分的值已读部分的值某时刻某时刻10101110005读进读进01010 1110005 2=10读进读进110101 1100010 2+1=215个状态即可,分别代表已读部分的值除以个状态即可,分别代表已读部分的值除以5的余数的余数例例 DFA,识别,识别0
11、,1上能被上能被5整除的二进制数整除的二进制数0123开始开始410010101012.3 有有 限限 自自 动动 机机 10102=10101112=710例例 DFA,接受接受 0和和1的个数都是偶数的字符串的个数都是偶数的字符串0000 3 211奇奇0奇奇1奇奇0偶偶1 1011开始开始偶偶0偶偶1偶偶0奇奇12.3 有有 限限 自自 动动 机机 2.3.3 NFA到到DFA的变换的变换 子集构造法子集构造法1、DFA的一个状态是的一个状态是NFA的一个状态集合的一个状态集合2、读了输入、读了输入a1 a2 an后后,NFA能到达的所有状态:能到达的所有状态:s1,s2,sk,则则 D
12、FA到达状态到达状态s1,s2,sk 12a开始开始 0abb00,1aba0,2b2.3 有有 限限 自自 动动 机机 未画完未画完19开始开始 0ab ab6782345 例例(a|b)*ab,NFA如下,把它变换为如下,把它变换为DFA2.3 有有 限限 自自 动动 机机 19开始开始 0ab ab6782345 输入符号输入符号ab状态状态 2.3 有有 限限 自自 动动 机机 19开始开始 0ab ab6782345 输入符号输入符号abA状态状态 A=0,1,2,4,7 2.3 有有 限限 自自 动动 机机 19开始开始 0ab ab6782345 输入符号输入符号abAB状态状态
13、 A=0,1,2,4,7 B=1,2,3,4,6,7,8 2.3 有有 限限 自自 动动 机机 19开始开始 0ab ab6782345 输入符号输入符号abABB状态状态 A=0,1,2,4,7 B=1,2,3,4,6,7,8 2.3 有有 限限 自自 动动 机机 19开始开始 0ab ab6782345 输入符号输入符号abABCB状态状态 A=0,1,2,4,7 B=1,2,3,4,6,7,8 C=1,2,4,5,6,7 2.3 有有 限限 自自 动动 机机 19开始开始 0ab ab6782345 输入符号输入符号abABCBC状态状态 A=0,1,2,4,7 B=1,2,3,4,6,
14、7,8 C=1,2,4,5,6,7 2.3 有有 限限 自自 动动 机机 19开始开始 0ab ab6782345 输入符号输入符号abABCBBC状态状态 A=0,1,2,4,7 B=1,2,3,4,6,7,8 C=1,2,4,5,6,7 2.3 有有 限限 自自 动动 机机 19开始开始 0ab ab6782345 输入符号输入符号abABCBBDC状态状态 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 有有 限限 自自 动动 机机 19开始开始 0ab ab6782345 输入符号输入符号abABCBBDCD状
15、态状态 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 有有 限限 自自 动动 机机 19开始开始 0ab ab6782345 输入符号输入符号abABCBBDCBCD状态状态 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 有有 限限 自自 动动 机机 19开始开始 0ab ab6782345 输入符号输入符号abABCBBDCBCDBC状态状态 A=0,1,2,4,7 B=1,2,3,4,6,7,8 C=1,2,4,5,6,7 D=1,2,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理 陈意云课件 第二章 编译 原理 陈意云 课件 第二
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内