第3章词法分析课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第3章词法分析课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 词法 分析 课件
- 资源描述:
-
1、第三章第三章 词法分析词法分析词法分析词法分析l词法分析程序概述词法分析程序概述l正规文法与正规式正规文法与正规式l有穷自动机有穷自动机l正规式与有穷自动机的等价性正规式与有穷自动机的等价性l正规文法与有穷自动机的等价性正规文法与有穷自动机的等价性l一个简单的词法分析器示例一个简单的词法分析器示例 状态图的形式化描述状态图的形式化描述3.3 3.3 有穷自动机有穷自动机S1非字母数字非字母数字字母字母字母、数字字母、数字2非数字非数字数字数字数字数字3其他字符其他字符+*,()出口出口4其他字符其他字符5=非非=出错出错其他其他标识符标识符无符号整数无符号整数单界符单界符双界符双界符读字符读字
2、符返回返回S Sl 有穷自动机是一种有穷自动机是一种数学模型数学模型,具有离散的输入与输出,系统,具有离散的输入与输出,系统可处于有穷状态中的任何一个;可处于有穷状态中的任何一个;l 它能准确地它能准确地识别正规集识别正规集,即识别正规文法所定义的语言和正,即识别正规文法所定义的语言和正规式所表示的集合;规式所表示的集合;l 引入有穷自动机这个理论,正是为引入有穷自动机这个理论,正是为词法分析程序的自动构造词法分析程序的自动构造寻找特殊的方法和工具。寻找特殊的方法和工具。有穷自动机分为两类:有穷自动机分为两类:确定的有穷自动机确定的有穷自动机(DFADFA)(Deterministic Fin
3、ite Automata)(Deterministic Finite Automata)不确定的有穷自动机不确定的有穷自动机(NFANFA)(Nondeterministic Finite Automata)(Nondeterministic Finite Automata)3.3 3.3 有穷自动机有穷自动机2 2型文法型文法(不确定的下推自动机)(不确定的下推自动机)1 1型文法型文法(不确定的界限自动机)(不确定的界限自动机)0 0型文法型文法(图灵机)(图灵机)3 3型文法型文法(有限自动机)(有限自动机)3.3 3.3 有穷自动机有穷自动机1.1.确定的有穷自动机(确定的有穷自动机(
4、DFADFA)M=(,Q,f,M=(,Q,f,S,Z)S,Z)l:有穷字母表,它的每个元素称为一个输入符号;:有穷字母表,它的每个元素称为一个输入符号;lQ Q:有穷集,它的每个元素称为一个状态;有穷集,它的每个元素称为一个状态;lSKSK,是唯一的初态;,是唯一的初态;lZ Z K K是一个终态集,终态也称可接受状态或结束状态;是一个终态集,终态也称可接受状态或结束状态;lf f 是转换函数,是是转换函数,是Q QQQ上的单值映射:上的单值映射:f f(q1q1,a a)=q2=q2 3.3 3.3 有穷自动机有穷自动机状态转移函数状态转移函数f f可用一矩阵来表示:可用一矩阵来表示:输入字
5、符输入字符 状态状态 a a b b 0 1 2 0 1 2 1 3 2 1 3 2 2 1 3 2 1 3 3 3 3 3 3 3例如例如:M:M:(0,1,2,3,a,b,f0,1,2,3,a,b,f,0 0,33)f f(0 0,a a)=1 f=1 f(0 0,b b)=2=2 f f(1 1,a a)=3 f=3 f(1 1,b b)=2=2 f f(2 2,a a)=1 f=1 f(2 2,b b)=3=3 f f(3 3,a a)=3 f=3 f(3 3,b b)=3=3所谓确定的状态机,所谓确定的状态机,其确定性表现在状其确定性表现在状态转移函数是单值态转移函数是单值函数!函数
6、!M=(,Q,f,S,Z)3.3 3.3 有穷自动机有穷自动机一个一个DFADFA也可以用一状态转换图表示:也可以用一状态转换图表示:DFADFA的状态图表示:的状态图表示:1032aabba,bba3.3 3.3 有穷自动机有穷自动机 输入字符输入字符 状态状态 a a b b 0 1 2 0 1 2 1 3 2 1 3 2 2 1 3 2 1 3 3 3 3 3 3 3字母表字母表含有含有n n个输入字符,那末任何一个状态结个输入字符,那末任何一个状态结点最多有点最多有n n条弧射出,而且每条弧以一个不同的输条弧射出,而且每条弧以一个不同的输入字符标记。入字符标记。换言之:若存在一条初始状
7、态到某一终止状态的路径,且这条路径上换言之:若存在一条初始状态到某一终止状态的路径,且这条路径上所有弧的标记符号连接成符号串所有弧的标记符号连接成符号串,则称,则称为为DFA MDFA M(接受)识别。(接受)识别。DFA MDFA M所接受的语言为:所接受的语言为:L(M)=|f(S,)=Sn,Sn ZL(M)=|f(S,)=Sn,Sn ZDFA MDFA M所能接受的符号串的全体记为所能接受的符号串的全体记为L(M)L(M)若若M M的初态结点同时为终态,或者存在一条从初态到某个终态结的初态结点同时为终态,或者存在一条从初态到某个终态结点的点的通路,则通路,则为为M M所识别。所识别。3.
8、3 3.3 有穷自动机有穷自动机(0 0,abaababaab)=(1 1,baabbaab)=(2 2,aabaab)=(1 1,abab)=(3 3,b b)=3(=3(接受接受)(0 0,abababab)=(1 1,babbab)=(2 2,abab)=(1 1,b b)=2(=2(拒绝拒绝)对于符号串对于符号串abaababaab对于符号串对于符号串abababab3.3 3.3 有穷自动机有穷自动机DFADFA的状态图表示:的状态图表示:1032aabba,bbaf f是一个多值函数,是从是一个多值函数,是从Q Q*到到Q Q的子集的映射:的子集的映射:f f:Q Q2 2Q Q
9、其中其中2 2Q Q是是Q Q的幂集,即的幂集,即Q Q中所有子集组成的集合。中所有子集组成的集合。2.2.不确定的有穷自动机(不确定的有穷自动机(NFANFA)M=(,Q,f,M=(,Q,f,S,Z)S,Z)有穷自动机的不确定性表现在在某个状态下,对于某个有穷自动机的不确定性表现在在某个状态下,对于某个输入字符存在多个后继状态,即状态的转向是不确定的。输入字符存在多个后继状态,即状态的转向是不确定的。3.3 3.3 有穷自动机有穷自动机例:例:NFA N=(a,b,c,1,2,3,4,f,1,4)NFA N=(a,b,c,1,2,3,4,f,1,4)符号符号状态状态 a b c a b c
10、1 1 4 24 2,3 3 2 2 2 2 4 4 3 3 3 3,44 4 4 3.3 3.3 有穷自动机有穷自动机l 对于对于*上的任何符号串上的任何符号串,若存在一条从某一初态到某一终态,若存在一条从某一初态到某一终态 的通路,且该通路上所有弧的标记字符依次连接成的串等于的通路,且该通路上所有弧的标记字符依次连接成的串等于,则称则称 可以被可以被NFA NNFA N所识别或接受。所识别或接受。l 若若N N的初态结点同时为终态,或者存在一条从初态到某个终态的初态结点同时为终态,或者存在一条从初态到某个终态 结点的结点的 通路,则通路,则 为为N N所识别。所识别。NFA NNFA N所
11、能识别的符号串的全体记为所能识别的符号串的全体记为L(N)L(N),称为,称为NFA NFA N N所识别的语言。所识别的语言。3.3 3.3 有穷自动机有穷自动机上例题相应的状态图为:上例题相应的状态图为:1234abacacN N所接受的语言(正规式)所接受的语言(正规式)R=aaR=aa*b|acb|ac*c|c|3.3 3.3 有穷自动机有穷自动机例:例:NFA N=(a,b,c,1,2,3,4,f,1,4)符号符号 状态状态 a b c 1 4 2,3 2 2 4 3 3,4 4 能接受能接受 000000 111 111 1010001 1010001 110000001 1100
12、00001(0|1)(0|1)*(000|111)(0|1)(000|111)(0|1)*不能接受不能接受 0000 01100 011003.3 3.3 有穷自动机有穷自动机画出能够识别画出能够识别C C语言注释语言注释/*/的的DFADFA3.3 3.3 有穷自动机有穷自动机12453othersothers/*/6othersothers all状态状态1:注释开始状态。:注释开始状态。状态状态2:进入注释体前的中间状态。:进入注释体前的中间状态。状态状态3:表明目前正在注释体中的状态。:表明目前正在注释体中的状态。状态状态4:离开注释前的中间状态。:离开注释前的中间状态。状态状态5:注
13、释结束状态,即接受状态。:注释结束状态,即接受状态。3.3 3.3 有穷自动机有穷自动机12453othersothers/*/q用于某些重要软件的设计和构造用于某些重要软件的设计和构造 设计和检查数字电路行为的软件设计和检查数字电路行为的软件;扫描如网页族等大规模文本以发现字、词或其它扫描如网页族等大规模文本以发现字、词或其它 结构的出现频率的软件结构的出现频率的软件;验证所有只有有限多个不同状态的系统的软件,验证所有只有有限多个不同状态的系统的软件,这类系统包括通信协议和信息安全交换协议。这类系统包括通信协议和信息安全交换协议。有穷自动机的其它应用有穷自动机的其它应用3.3 3.3 有穷自
14、动机有穷自动机已证明:非确定的有穷自动机与确定的有穷自动机从功能已证明:非确定的有穷自动机与确定的有穷自动机从功能 上来说是等价的,也就是说,我们能够从:上来说是等价的,也就是说,我们能够从:NFA NDFA M构造成一个构造成一个使得使得L(M)=L(N)L(M)=L(N)DFA DFA是是NFANFA的特例。有一种算法,将的特例。有一种算法,将NFANFA转换成接受转换成接受同样语言的同样语言的DFADFA。这种算法称为这种算法称为子集法子集法。与某一与某一NFANFA等价的等价的DFADFA不唯一。不唯一。3.3 3.3 有穷自动机有穷自动机3.NFA3.NFA的确定化的确定化 从从NF
展开阅读全文