- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.4 正规语言描述方法间的相互转换 ※ 正规文法 与 DFA间转换示例: ※ 正规式 与 DFA间转换示例: 3.5 有限自动机的实现问题 用计算机完成有限自动机的功能,其核心是“变换”的实现技术。这里介绍的是把变换表按某种方式存贮起来,作为知识源,实现机制是: 3.5.1 控制程序设计 3.5.2 变换表存贮结构设计 ※有限自动机实现示例: 练习题: 谢谢收看! * * 众所周知,正规语言有三种等价的表示方法: ⑴ 正规文法 ⑵ 正规式 ⑶ 有限自动机 我们以有限自动机为核心,介绍彼此间的转换关系: Ⅰ. 正规文法 = DFA 设 G(Z)=(VN,VT,Z,P), DFA=(Q,∑,s,F,?) 则有: DFA 正规文法 ∑(字符集) VT (终结符集) ?(A,a)=B A - aB ?(A,a)=B(结束态) A - a S(开始状态) Z(开始符号) Q(状态集) VN( 非终结符集) A - ? A(结束态) Z-aZ|bA|? , A-bA|dB ,B-? 【例3.16】 自动机 = 正规文法: ① ② ③ a b c d + - DFA: 令 Z=①, A=②, B=③ 则有 正规文法 Z - aA 【例3.17】正规文法 = 自动机, 并求 L(G): G(Z): Z-aZ|bA|? ,A-bA|d ∵ A-d 可变换为 ∴ G`(Z) ( 与 G(Z)等价 ): 令 ①-Z, ②-A, ③-B 对应的DFA ① ② ③ b a d + - - b 则 L(G)={?,ambnd|m≥0,n0} G(Z): | cB , A -bA | dB , B-? A-dB, B-? s f e + - Ⅱ. 正规式 = DFA 设 e 为正规式 , DFA=(Q,∑,s,F,?) 转换机制: ※ e = DFA 分解过程 ( 其逆过程为合成过程): 则有: 合成 分解 i j e1|e2 i j e1.e2 i j e* i j e2 e1 i j e1 k e2 i j e k ? ? 实践中,可简化为其中一种: i e j ? j e i ? e i e j 或 或 或 【例3.18】正规式 = 自动机 设 e = a*b|bc* 则: ① ⑨ a*b bc* + - a* c* ① + ⑨ - ② ③ b b + - a a a a c ① + ⑨ - ② ③ b b b - + a a c A + B b b D - C E c - - 等价! Ⅰ Ⅱ a ? c ① + ⑨ - ② ③ b b ? Ⅲ b c ① + ⑨ - ② ③ b b ? + - Ⅳ Ⅴ 确定化2 DFA: 确定化1 b c a Ⅵ A{1,2} + D{9} C{3,9} B{2} B{2} D{9} E{3} C{3,9} B{2} E{3} E{3} - - - ⑶ 令 getchar(ch) 读符号函数。 【三点说明】 ⑴ 假定自动机只作为识别器,即 对待识别的符号串: 仅回答 是(接受)或 否(拒绝)。 ⑵ 为便于处理,可令 为此,扩展自动机如下: … … ok 4 ok 5 … … … … 6 3 1 ≮ b a + - - ‘空’ 则 no 控制程序 变换表 + ③ ① + ⑥ ⑤ - a ④ - b - ≮ ≮ 作为待识别的符号串的泛指后继符。 ≮ 开始 结束 state:=1 getchar(ch) 查变换表: ?(state,ch)= ? ?=? ?=ok 回答:ok 回答:no y n y state:= ? n 开始状态1赋给变量 state 从输入串中读取一符号到变量 ch 变量 state 重新被赋值! n … ② ① 变换表的存贮结构可选择下述两种方式之一: ⑴ 二维数组 ,其下标是(状态,输入符号); ※ 为了适应不同编码语言的需要,状态和输入符号可采取相应的编码形式;通常,使用连续的正整数:0,1,2,3,…。 ⑵ 压缩变换表,方法是把每个状态行作为子表,状态为索引,并把错误的输入符号合并在一起,如: no ? … ⑧ b ⑤ a no ? … ② f ④ e … no ? … ⑨ y ① x 索引表 ?(其他)--错误符号。 状态 变换子表 c a 3 ④ ③ ② ① 【例3.19】 有限自动机DFA: ③ ① + ② ④ a b - # a b c d ? no ② b ③ a ? no ④ d no ? ② c ④ b ③ a ? no ok # 压缩变换表 输入串 aacd#
您可能关注的文档
- JAVA程序设计第4章.ppt
- JAVA程序设计第5章.ppt
- JAVA程序设计第6章.ppt
- JAVA程序设计第9章.ppt
- JAVA程序设计第10章.ppt
- JAVA程序设计第11章.ppt
- JAVA程序设计第12章.ppt
- 武汉大学计算机学院linux复习题.doc
- Linux原理及应用——专题0:Shell实例 .ppt
- Linux原理与应用——专题2:Makefile.ppt
- 2025年广西中考地理二轮复习:专题四+人地协调观+课件.pptx
- 2025年广西中考地理二轮复习:专题三+综合思维+课件.pptx
- 2025年中考地理一轮教材梳理:第4讲+天气与气候.pptx
- 第5讲+世界的居民课件+2025年中考地理一轮教材梳理(商务星球版).pptx
- 冀教版一年级上册数学精品教学课件 第1单元 熟悉的数与加减法 1.1.6 认识1-9 第6课时 合与分.ppt
- 2025年中考一轮道德与法治复习课件:坚持宪法至上.pptx
- 2025年河北省中考一轮道德与法治复习课件:崇尚法治精神.pptx
- 八年级下册第二单元+理解权利义务+课件-2025年吉林省中考道德与法治一轮复习.pptx
- 精品解析:湖南省娄底市2019-2020学年八年级(上)期中考试物理试题(原卷版).doc
- 2025年中考地理一轮教材梳理:第10讲+中国的疆域与人口.pptx
文档评论(0)