- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第04章汇编原理词汇分析
第4章 词法分析;4.1 词法分析程序的功能及处理方式;一次扫描式
将字符串表示的源程序,经词法分析以后,得到一个个单词系列,再作语法分析。;4.2 词法分析器的I/O;三、输出单词的形式:二元组
二元组:(单词种别码,单词自身值)
1. 单词种别码
表示单词的种类:如基本字、标识符、常数、运算符、界符等。
原则:处理简单。
方法:每一类单词对应一个不同的整数。
目的:最大限度地区别各个单词。
;基本字的分类有两种方式:
一字一种:每一个保留字一个种别码;
把全体视为一种;
标识符:统分为一种
常数的分类也有两种方式:
统分为一种;
按常数的类型分(整、实型…)
运算符:一符一种
界符:一符一种;2. 单词自身值
一符一码时:用一个种别码来标识一个单词。
一类一码时:
方式一:用指向某类表格的一个特定的项目指针值表示同类中不同的单词。;Ex: if a1 then b:=100;第6讲;4.3 词法分析程序设计过程及工具;词法分析器;二、设计工具:状态转换图
状态转换图的特点;状态转换图的定义
有限的有方向的图;
状态有限(一个圆为状态,两个圆为终态,初态为? )
为识别方向。;0;0;0;对FAIL()过程编程
if 还有其它状态转换图 then
{ 将搜索指针退回到起点指针处,启动另一转换图}
else
出错; 现行状态不匹配错;4.4 正规式与有穷自动机;Ex1:令?={a , b},则:
?上的正规式 相应的正规集
a L(a)={a}
b L(b)={b}
a* L(a*)={?,a,aa,aaa…}
(a|b) L(a|b)=L(a) ?L(b)={a,b}
(a|b) (a|b) L(a|b)L(a|b)={aa,ab,ba,bb}
a · b L(a · b)=L(a)L(b)={ab}
(a | b)* (L(a|b))*={a,b}*;正规式的等价性
若正规式R1与R2描述的正规集相同,则R1与R2等价。
即:若L(R1)=L(R2),则R1与R2等价,记为:R1=R2;正规式与正规文法的区别与联系;Ex5.
正规式:I=l|(ld)*
正规文法:I?Il|Id|l;二、有穷(限)自动机
DFA(确定的有穷自动机)
定义:
一个DFA M是一个五元组:
M=(S,?,f,S0,F),其中,
S:状态的有穷非空集,Si是一个状态
?:有穷输入字母表,ai是其中的一个字符
f: 状态转换函数,S? ??S的单值映射函数
如:f(S1,a)=S2
S0?S,是唯一的初始状态,一定不为空
F ?S,终态集,可以为空;Note
1:非形式化的描述--状态转换图,
形式化的描述--状态转换矩阵
2:F ?S,终态集,可以为空,表示不能识别任何符号。;Ex1:设有一个DFA
M=( {q0 , q1 , q2}, {a , b}, f, q0 , {q2} ),其中f为:
f(q0,a)=q1 f(q0,b)=q2
f(q1,a)=q1 f(q1,b)=q1
f(q2,a)=q2 f(q2,b)=q1;DFA的功能
对任意的字符串???*,存在一条路,其边上的字符组成的串就是该自动机DFA识别的语言L(M)。;NFA(非确定的有穷自动机)
定义:
一个NFA M是一个五元组:
M=(S,?,f,S0,F),其中, S,?,F同DFA,即:
S:状态的有穷非空集,Si是一个状态
?:有穷输入字母表,ai是其中的一个字符
F ?S,终态集,可以为空
f:
是S? ??S的多值映射函数,如:f(S1,a)={S1,S2,S3}
允许f(S1,?)={S1,S2,S3}
也允许出现空态
S0?S,是非空的初态集,即S0不唯一;Ex2:设有一个NFA
M=( {1 ,2 ,3}, {a , b}, f, {1,3} , {2} ),其中f为:
f(1,a)=3 f(1,b)={1,2}
f(2,a)=? f(2,b)={3}
f(3,a)=? f(3,b)={2};NFA的功能
NFA也能识别一定的字符串,即对任意的字符串???*,存在一条路,其边上的字符组成的串就是该自动机NFA识别的语言L(M)。
NFA的特点:不确定性,一个串可以对应多条路径。;结论
1:希望用一条确定的路来识别某一字串
2:DFA是NFA的特例。(如何将NFA?DFA?);第7讲;初态可不唯一 ;三、正规
文档评论(0)