- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 形式语言与有限自动机
有限自动机之第一部分
有限自动机的引入
(1)引入原因:有限自动机是一种识别装置,它能准确地识别正规集。它为词法分析程序的构造提供了方法和工具。
(2)性质:有限自动机是具有离散输入输出系统的数学模型。它具有有限数目的内部状态,系统可以根据当前所处的状态和面临的输入字符决定系统的后继行为。其当前状态概括了过去输入处理的信息。
(3)用途:有限自动机是描述特定类型算法的数学方法。特别地,有穷自动机可用作描述在输入串中识别模式的过程,因此,也能用于构造词法分析程序。
2.有限自动机的模型
(1)模型如图所示:
a b c d e ……
状态:初始状态、中间状态和终止状态。
工作过程:在初始状态下,读头指向输入带的最左单元,准备读入第一个字符,每读入一个字符,从当前状态进入下一状态;当读头读入所有字符后,状态进入终态,则输入带上的输入串被接受,否则,输入串有错。
注:1)终止状态可以有若干个,而初始状态一般只有一个。
2)可用状态转换图表示状态变换,状态用结点表示,读入符号用边表示。
(2)自动机实例:
我们举一个大家熟悉的程序设计语言中标识符的识别过程。标识符是由字母打头,后跟若干字母和数字的字符串。则其自动机表示如下:
则标识符xtemp的识别匹配过程为:
小结:有限自动机能够准备识别程序设计语言中的单词,因此可用于构造词法分析程序。方法是为程序中的每类单词,根据词法构成规则设计一个FA,然后将其合并在一起构成一个词法分析程序。
FA可以分为确定有限自动机和非确定有限自动机两种。这次课主要学习确定有限自动机
3.确定有限自动机
(1)定义:确定有限自动机是一个五元式 M(S,(,f,s0,Z)
其中:S:有限状态集
( :有限字母表
f:S(( (S上的单值映射,f(s,a)=s’
s0:唯一的初态,s0 ∈ S
Z:终止状态集,Z(S
注:这里确定的含义,就是状态转换关系f是一个函数,即对于给定的当前状态s和当前读入的符号a,有唯一确定的下一状态s’
(2)状态转换关系表示:
状态转换矩阵:DFA的映射关系由一个矩阵来表示。
状态转换图:
注:1)用矩阵表示转换便于计算机处理,但不直观,而用状态转换图表示比较直观。2)在整个状态转换图中只有一个初始状态结点,用“(”射入的结点表示初始状态。可有若干终止状态(也可能没有),用双圆圈表示。若初始状态结点同时又是终止状态结点,则表示空串(可为相应DFA识别。
例:DFA M=({0,1,2,3},{a,b},f,0,{3})
f: f(0,a)=1 f(0,b)=2 f(1,a)=3 f(1,b)=2
f(2,a)=1 f(2,b)=3 f(3,a)=3 f(3,b)=3
状态转换矩阵
输入状态 a b 0 1 2 1 3 2 2 1 3 3 3 3 状态转换图:
例:构造一个DFA M,它接受字母表{a,b,c}上,以a或b开始的字符串,或以c开始但所含的a不多于一个的字符串。
故:DFA: M=({0,1,2,3,},{a,b,c},f,0,{1,2,3})
其中:f: f(0,a)=1 f(0,b)=1
f(0,c)=1 f(1,a)=1
f(1,b)=1 f(1,c)=1
f(2,a)=3 f(2,b)=2
f(2,c)=2 f(3,b)=3
f(3,c)=3
(3)一步动作
每读一个字符,状态就向前进至下一状态。 记为:“┣ ”
┣ K 表示自动机做了K步动作
┣ *表示自动机做了0步动作或0步以上动作
┣ +
(4) DFA对字符串的识别
定义:串(((*为 DFA M=(S, (,f,s0,Z) 所识别,当且仅当(s0, ( ) ┣ *(s,(),且s ∈Z
能被DFA M所接受的字符串的集合,称为自动机M所能识别的语言,记为L(M)
注:不能被自动机接受的字符串有两种情况:
读完输入串,状态不停在终止状态,即: (s0,() ┣ *(s’,(),且s’ (Z
在读过程中出现不存在的映射,使自动机无法继续动作
4、不确定有限自动机NFA(Non-deterministic FA)
(1)定义:不确定有限自动机是一个五元式
M=(S,(,f,S0,Z)
其
文档评论(0)