词法分析(五):正规式与有限自动机kafm

唉,不想学习,老是想起别的事情

这篇博客讲的是正规式和有限自动机的等价性,为NFA写出等价的正规式,为一个正规式构造等价的NFA

有了NFA与正规式的关系,就把正规式和前面所述串接起来了总而言之,状态图,正规式/正规集,有限自动机都是同种东西的不同形式正规集是实在存在的编程语言的单词集合,正规式是单词集合的抽象描述,计算机难以理解正规式,或者说正规式的概念难以映射到计算机上,所以借助有限自动机实现正规式,而有限自动机又可以用状态转移图形象地描述出来go

正规式 r 与有限自动机 M 等价:L(r) = L(M),正规式对应的正规集与FA识别的字的全体是相等的

定理:对任何FA M,都存在一个正规式 r,使得L(r)= L(M)定理:对于任何正规式 r,都存在一个FA M,使得L(M)=L(r)

广义的状态转换图,弧上可以是正规式对待任何NFA M,在状态转换图上加进新的初态X,用 ε弧 连接原先的初态;添加新的终态结点Y,用 ε弧 将原先的终态与Y连接

(改造后的NFA只有一个初态和一个终态,最后构造出的正规式也会合并为一个)

使用一下三条规则,逐步消去结点,直到只剩下X、Y结点

不难看出,以上变换都是等价变换最后,X到Y的弧上的正规式就是与该FA等价的正规式

为什么FA弧上可以是正规式?因为正规式和FA(NFA(DFA))是等价概念,弧上的正规式即是一个FA,作为整个FA的一个子状态机(像是一种简写)

这里有一个更严格的定理对于 Σ 上的正规式 r,都存在一个NFA M,使L(M)=L(r),并且 M 只有一个初态和一个终态,且没有从终态出发的弧

这个定理更加严苛,证明了这个定理,即证明了前述定理

下面给出一个严格的数学证明

对给定正规式r中的运算符数目进行归纳

假设结论对于运算符数目少于 k(k>=1) 的正规式成立,证明结论对于运算符数目为 k 的正规式成立证明:当 r 中含有 k 个运算符时,r 有三种情况

分别对这三种情况进行证明

这样构造的NFA M 就把 M1 和 M2 并联起来,L(M) = L(M1) ∪ L(M2) = L(r1) ∪ L(r2) = L(r1|r2) = L(r)

这样构造的NFA M 就把 M1 和 M2 串联起来,L(M) = L(M1)L(M2) = L(r1)L(r2) = L(r1·r2) = L(r)

这样构造的NFA M 就实现了 M1 的任意次重复L(M) = L(M1)* = L(r1)* = L(r1*) = L(r)

THE END
0.编译原理——正规表达式与有限自动机(笔记)正规式本文介绍了正规式与有限自动机的基础知识,包括正规集的概念、正规式的递归定义及其与有限自动机的等价性证明,并探讨了词法分析器的自动生成方法。 一、正规式和正规集 正规集:程序设计语言的单词表、词汇集构成的集合,即是字的集合。它有一定特殊性,我们称之为正规集。用来代表程序语言的单词表。 正规式:可以说是正规jvzquC41dnuh0lxfp0tfv8|gkzooa=;;6;<398ftvkimg8igvcomu86458656B8
1.词法分析:2.模式的形式化描述正规式字符串集合正规式本文深入探讨了正规式和正规集的概念,包括定义、运算、等价判定及辅助定义,通过实例解释了如何理解和应用正规式来描述语言集。 文章目录 一、术语 1.语言L 2.正规式和正规集的定义 (1)正规式 (2)正规集 二、正规式的读法 三、正规式的运算 1.正规式运算的优先级与结合性 jvzquC41dnuh0lxfp0tfv8xcpfgmrqtp6:<:1jwvkerf1mjvckrt1:5533<:5=
2.编译原理——正规式正规集和正则定义cai的一批正规式和正则表达式都是通过一定的语法规则来描述文法,但不是同一个概念。 正规式是一种用来描述正则语言的更紧凑的表示方法 正规式可以由较小的正规式按照特定规则递归地构建。每个正规式r定义(表示)一个语言,记为L(r) 正规集的定义 能用正规式或正规文法表示的集合称为正规集。 jvzquC41yy}/ewgnqiy/exr1yjibk8u136?52;:90jznn
3.(7)编译程序第一个工作阶段词法分析开始,第一步当然是要从源程序中读入单词了,我们在文法中描述单词的工具是什么?正规式(也称正则表达式),是用以描述单词符号的方便工具。 正规式和正规集定义: 字母表集合内,所含有两个相继的a或两个相继的b组成的串 | 正规式服从代数规律: jvzquC41yy}/mjsenq{e0ls1fkmfu}4dkctzk‚zcpno03?99;7
4.正规式和正规集之间是否有一一对应的关系()声明: 本网站大部分资源来源于用户创建编辑,上传,机构合作,自有兼职答题团队,如有侵犯了你的权益,请发送邮箱到feedback@deepthink.net.cn 本网站将在三个工作日内移除相关内容,刷刷题对内容所造成的任何后果不承担法律上的任何义务或责任 jvzquC41yy}/uqzcuj{bvr3eqo5uk87;3chd;:836h:edn>245785<;g9e;b8:3jvor
5.正规式与自动机理论(e1)*为正规式,它所表示的正规集为(L(e1))* 仅由有限次使用上述三步骤而定义的表达式才是Σ上的正规式,仅由这些正规式表示的字集才是Σ上的正规集。 正规式的等价性 若两个正规式所表示的正规集相同,则称这两个正规式等价。如: b(ab)* =(ba)*b jvzquC41dnuh0lxfp0tfv8qqpihp4<81ctzjeuj1fgzbkux132<52>:621
6.编译原理基本知识理解(二)无关状态死状态正规式 正规集 a b{a} {b} a|b{a,b} ab {ab} (a|b)* {e,a,b,aa,ab,ba,bb,aaa,……} 需要注意的是(a|b)*的任意一个子集都不能认为是一个正规集,例如 就不是一个正规集。 (2)正规式的代数性质 2.正规式与有穷自动机(FA) (1)确定有穷自动机(DFA):五元式 一个DFA有三种表示方法:转换函数,状态转换jvzquC41dnuh0lxfp0tfv8mwc{{o{~4ctvodnn4fgvgjn|4344887=72
7.编译原理正规式和正规集赵钱富贵②(e1·e2)为正规式,它所表示的正规集为L(e1)L(e2) ③(e1)*为正规式,它所表示的正规集为(L(e1))* 二、若两个正规式所表示的正规集相同则称这两个正规式等价。 证明e1=e2: ∵L(e1)=L(e2) ∴e1=e2 即证明L(e1)=L(e2) __EOF__jvzquC41yy}/ewgnqiy/exr1o|ttpm~1r1719:62994ivvq
8.编译原理学习笔记3:正规式,正规集,确定的/不确定的有穷自动机本文介绍了正规式(正则表达式)与正规集的概念,并详细解释了如何从正规式得到正规文法,反之亦然。此外,还探讨了确定的有穷自动机(DFA)与不确定的有穷自动机(NFA)的定义及其识别正规集的方式。 以后*都表示前一个元素的闭包,就当写在了右上角。 正规式和正规集 jvzquC41dnuh0lxfp0tfv8XJW3;24:=781gsvrhng1jfvjnnu1=::9>4;;
9.词法分析与有限自动机3.3.1正规式和正规集 为了识别正则语言,我们引入了状态转换图和有限自动机,有限自动机所接受的语言正是正则文法产生的语言(正则语言),程序设计语言中的单词也大多是由正则文法产生的。作为单词的语法除了用正则文法描述外,我们还可以用一种更有效的工具——正规式加以描述。 jvzquC41dnuh0lxfp0tfv8~qpiiicxhufp5bt}neng5eg}fknu58;9:3;48
10.词法分析(1)词法分析的有关概念以及转换图正规式又叫正规表达式,正规式是模式得一种规范的表达形式,正规式描述了一个集合,这个集合是由串组成的,其实这个集合就是我们前面说过的语言,不过这里大家喜欢使用正规集这个术语。正规式 r 表示正规集L(r) 正规式的运算: 1. 闭包运算,运算优先级最高,(r)* 表示 (L(r))* jvzquC41dnuh0lxfp0tfv8iknkmfp}hcv1gsvrhng1jfvjnnu1<86:769
11.编译原理:从正规文法到有限自动机正规式和正规集 为了识别正则语言,我们引入了状态转换图和有限自动机,有限自动机所接受的语言正是正规文法产生的语言(正规语言),程序设计语言中的单词也大多是由正规文法产生的。作为单词的语法除了用正规文法描外,我们还可以用一种更有效的工具——正规式加以描述。 jvzquC41dnuh0lxfp0tfv8hhn{y0c{ykenk0fnyckny09:9474=3
12.编译原理之:正规式,正规集字符串集合正规式正规式也叫正则表达式,它是一种描述字符串构成模式的方法,就是字符串的有限表示。比如正规式a∧+(a的正闭包),表达a,aa,aaa… 正规集则是对应正规式表达的所有字符串的集合。jvzquC41dnuh0lxfp0tfv8Mqumkjp8ftvkimg8igvcomu8636:=2;<<