编译原理:第三章 自动机基础 (3)_第1页
编译原理:第三章 自动机基础 (3)_第2页
编译原理:第三章 自动机基础 (3)_第3页
编译原理:第三章 自动机基础 (3)_第4页
编译原理:第三章 自动机基础 (3)_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、3.4 正规语言描述方法间的相互转换 众所周知,正规语言有三种等价的表示方法: 正规文法 正规式 有限自动机 我们以有限自动机为核心,介绍彼此间的转换关系: . 正规文法 DFA设 G(Z)=(VN,VT,Z,P), DFA=(Q,s,F,)则有:DFA正规文法 (字符集) VT (终结符集)(A,a)=BA - aB(A,a)=B(结束态)A - a S(开始状态) Z(开始符号) Q(状态集) VN( 非终结符集)A - A(结束态) Z-aZ|bA| , A-bA|dB ,B- 正规文法 与 DFA间转换示例:【例3.16】 自动机 = 正规文法:abcd+-DFA:令 Z=, A=,

2、B=则有 正规文法Z - aA【例3.17】正规文法 = 自动机, 并求 L(G):G(Z): Z-aZ|bA| ,A-bA|d A-d 可变换为 G(Z) ( 与 G(Z)等价 ): 令 -Z, -A, -B对应的DFAbad+-b则 L(G)=,ambnd|m0,n0G(Z):| cB, A -bA| dB , B-A-dB, B-sfe+-. 正规式 DFA设 e 为正规式 , DFA=(Q,s,F,) 转换机制: e = DFA 分解过程 ( 其逆过程为合成过程):则有:合成分解ije1|e2ije1.e2ije*ije2e1ije1ke2ijek 实践中,可简化为其中一种:iejje

3、ieiej或或或 正规式 与 DFA间转换示例:【例3.18】正规式 = 自动机 设 e = a*b|bc*则:a*bbc*+-a*c*+-bb+-aaaac+-bbb-+aacA+BbbD-CEc-等价!ac+-bbbc+-bb+-确定化2DFA:确定化1 bcaA1,2+D9C3,9B2B2D9E3C3,9B2E3E3- 令 getchar(ch) 读符号函数。3.5 有限自动机的实现问题 用计算机完成有限自动机的功能,其核心是“变换”的实现技术。这里介绍的是把变换表按某种方式存贮起来,作为知识源,实现机制是: 【三点说明】 假定自动机只作为识别器,即 对待识别的符号串: 仅回答 是(接受

4、)或 否(拒绝)。 为便于处理,可令为此,扩展自动机如下:ok 4ok 5 6 3 1 b a+-空 则 no控制程序 变换表 +-a-b-作为待识别的符号串的泛指后继符。3.5.1 控制程序设计开始结束state:=1getchar(ch)查变换表: (state,ch)= ? = =ok回答:ok回答:noynystate:= n 开始状态1赋给变量 state 从输入串中读取一符号到变量 ch 变量 state 重新被赋值! n3.5.2 变换表存贮结构设计变换表的存贮结构可选择下述两种方式之一: 二维数组 ,其下标是(状态,输入符号); 为了适应不同编码语言的需要,状态和输入符号可采取

5、相应的编码形式;通常,使用连续的正整数:0,1,2,3,。 压缩变换表,方法是把每个状态行作为子表,状态为索引,并把错误的输入符号合并在一起,如:nobanofenoyx索引表(其他)-错误符号。状态变换子表ca3有限自动机实现示例:【例3.19】 有限自动机DFA: +ab-#abcdnobanodnocbanook#压缩变换表输入串 aacd# 识别过程:索引表备注变换剩余chstate3acd#a1接受ok#44#d22d#33cd#练习题:【习题3.7】已知正规式 ,试转换为自动机和正规文法: e1=(ab)* ; e2=(a|b)* .【习题3.8】已知符号串集合,构造正规式、自动机和正规文法:A= ,an,ban|n1 【习题3.9】已知自动机DFA:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论