




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
形式语言与自动机正则表达式第一页,共三十五页,2022年,8月28日2/24/20231:16AM2第六章正则表达式6.1引例6.2正则表达式的形式定义形式定义6.2.2例题 6.3正则表达式与有穷自动机的等价性充分性证明必要性的证明(1)首先说明如何把DFA转换成GNFA(2)说明如何把GNFA转换成正则表达式第二页,共三十五页,2022年,8月28日2/24/20231:16AM3例题1::
算术表达式:(5+4)×2,值为18,是一个数字
正则表达式:(0∪1)0*,正则表达式的值是一个语言注意:(0∪1)0*表示的是01后加任意多个0构成的字符串所组成的语言0和1是集合{0}和{1}的缩写,就是{0}∪{1},这部分的值是语言{0,1}0*就是{0}*,其值为所有包含任意个0的字符串构成的语言在正则表达式中省略了连结运算符号o,(0∪1)0*实际上是(0∪1)o0*正则表达式可以用来描述满足“某种模式”的字符串。第三页,共三十五页,2022年,8月28日2/24/20231:16AM4
很多应用程序及现代程序设计语言、文本编辑程序都提供用正则表达式描述模式的手段。例题2:正则表达式(0∪1)*其值为:由0和1的所有字符串组成的语言,也表示为{0,1}*表示方法:记∑为字母表,∑也可以表示该字母表中所有长度为1的字符串,而∑*为由该字母表中所有字符串组成的语言。如:(0∑*)∪(∑*1)表示所有以0开头而以1结尾的字符串正则运算的优先级:先星号,后连结,最后并,要改变这种惯常的顺序需要用括号。第四页,共三十五页,2022年,8月28日2/24/20231:16AM5第六章正则表达式6.1引例6.2正则表达式的形式定义形式定义6.2.2例题 6.3正则表达式与有穷自动机的等价性充分性证明必要性的证明(1)首先说明如何把DFA转换成GNFA(2)说明如何把GNFA转换成正则表达式第五页,共三十五页,2022年,8月28日2/24/20231:16AM6定义称R是一个正则表达式,如果R是a,这里a是字母表∑中的一个元素;ε;φ;(R1∪R2),这里R1和R2是正则表达式;(R1oR2),这里R1和R2是正则表达式;(R1*),这里R1是正则表达式;第六页,共三十五页,2022年,8月28日2/24/20231:16AM7说明:在(1)和(2)中,a和ε分别表示{a}和{ε}在(3)条中,φ表示空语言在第(4)、(5)、(6)表示通过正则运算并、连结和星号获得正则表达式(用较小的正则表达式定义较大的正则表达式,是归纳定义中的归纳步骤)此处ε和φ的区别:有一个空语句的语言,和空语言要想明显的区分正则表达式R和它所表示的语言时,后者用L(R)表示。第七页,共三十五页,2022年,8月28日2/24/20231:16AM8第六章正则表达式6.1引例6.2正则表达式的形式定义形式定义6.2.2例题
6.3正则表达式与有穷自动机的等价性充分性证明必要性的证明(1)首先说明如何把DFA转换成GNFA(2)说明如何把GNFA转换成正则表达式第八页,共三十五页,2022年,8月28日2/24/20231:16AM9例题3:在下面的句子中,字母表为{0,1}0*10*{ω|ω恰好有一个1}∑*1∑*{ω|ω至少有一个1}∑*001∑*{ω|ω中含有子串001}(∑∑)*{ω|ω是偶长度的字符串}(∑∑∑)*{ω|ω是长度为3的字符串}01∪10{01,10}0∑*0∪1∑*1∪0∪1{ω|ω以相同的字符开始和结束}(0∪ε)1*01*∪1*说明:(0∪ε)表示语言{0,ε}(0∪ε)(1∪ε){ε,0,1,01}1*φφφ*{ε}说明:*运算只能把0个字符串连接在一起,得到的唯一的一个字符串是ε第九页,共三十五页,2022年,8月28日2/24/20231:16AM10例题4:设R是任意的正则表达式,有下述恒等式成立。几个正则表达式的恒等式这些恒等式有助于对正则表达式定义的理解R∪φ=R空语言加上任何一个语言不改变这个语言Roε=R空串加上任何一个字符串上不改变这个字符串但是:R∪ε不一定等于R,Roφ不一定等于R第十页,共三十五页,2022年,8月28日2/24/20231:16AM11例题5:程序设计语言中的基本单位称为单字,如变量名和常量,这些东西可以用正则表达式描述。通常是包括小数部分和正负号的的数值常量可以描述成下述语言的一个成员:{+,--,ε}(DD*∪DD*.D*∪D*.DD*)其中,D={0,1,2,…,9},则72,3.14,+7.和-.01是该语言的字符串。在编译中,只要程序设计语言中的单字的语法用正则表达式描述出来,自动系统能够生成词法分析程序。这是编译程序的一部分,用来在开始阶段处理输入程序。第十一页,共三十五页,2022年,8月28日2/24/20231:16AM12第六章正则表达式6.1引例6.2正则表达式的形式定义形式定义6.2.2例题 6.3正则表达式与有穷自动机的等价性充分性证明必要性的证明(1)首先说明如何把DFA转换成GNFA(2)说明如何把GNFA转换成正则表达式第十二页,共三十五页,2022年,8月28日2/24/20231:16AM13定理1:一个语言是正则的,当且仅当可以用正则表达式描述它。第十三页,共三十五页,2022年,8月28日2/24/20231:16AM14第六章正则表达式6.1引例6.2正则表达式的形式定义形式定义6.2.2例题 6.3正则表达式与有穷自动机的等价性充分性证明必要性的证明(1)首先说明如何把DFA转换成GNFA(2)说明如何把GNFA转换成正则表达式第十四页,共三十五页,2022年,8月28日2/24/20231:16AM15引理1如果一个语言可以用正则表达式描述,则它是正则的。证明:考虑正则表达式R定义的6种情况(1)R=a,这里a是字母表∑中的一个元素,那么L(R)={a},下述NFA识别L(R)(注意:这台机器符合NFA的定义,但是不符合DFA的定义,因为(1)…(2)…)形式的表示,N=({q1,q2},∑,δ,q1,{,q2}),其中δ
的定义为δ(q1,a)=q2δ(q1,b)=φ,若第十五页,共三十五页,2022年,8月28日2/24/20231:16AM16R=ε;下述NFA识别L(R)R=φ;那么L(R)=φ,下述NFA识别L(R)(R1∪R2),这里R1和R2是正则表达式;(R1oR2),这里R1和R2是正则表达式;(R1*),这里R1是正则表达式;(4)、(5)、(6)三种情况由正则语言类在正则运算下的封闭性的证明中给出的构造证明方法,很容易得出需要的NFA。第十六页,共三十五页,2022年,8月28日2/24/20231:16AM17例题6:分若干阶段把正则表达式(ab∪a)*转换成NFA,从最小的子表达式到大一点到大一点的子表达式逐步建立。使用构造证明中的方法一般不能给出状态最少的NFA。a和b(1)第十七页,共三十五页,2022年,8月28日2/24/20231:16AM18ab(2)ab∪a(3)第十八页,共三十五页,2022年,8月28日2/24/20231:16AM19(ab∪a)*(4)思考:本例题一共给出了8个状态,而最小的表示该表达式的NFA,只要2个状态,怎么表示?习题:把正则表达式(a∪b)*aba转换成一台NFA。请一步步根据步骤给出。第十九页,共三十五页,2022年,8月28日2/24/20231:16AM20第六章正则表达式6.1引例6.2正则表达式的形式定义形式定义6.2.2例题 6.3正则表达式与有穷自动机的等价性充分性证明必要性的证明(1)首先说明如何把DFA转换成GNFA(2)说明如何把GNFA转换成正则表达式第二十页,共三十五页,2022年,8月28日2/24/20231:16AM21引理2如果一个语言是正则的,那么它可以用正则表达式描述。第二十一页,共三十五页,2022年,8月28日2/24/20231:16AM22第六章正则表达式6.1引例6.2正则表达式的形式定义形式定义6.2.2例题 6.3正则表达式与有穷自动机的等价性充分性证明必要性的证明(1)首先说明如何把DFA转换成GNFA(2)说明如何把GNFA转换成正则表达式第二十二页,共三十五页,2022年,8月28日2/24/20231:16AM23广义非确定型有穷自动机GNFA第二十三页,共三十五页,2022年,8月28日2/24/20231:16AM24GNFA其实就是NFA,只是转移箭头可以用任何正则表达式作标号,而不是只能用字母和ε做标号。GNFA读入输入符号段,而不必一次值读一个符号。GNFA是非确定性的,有几种不同的方式处理同一个符号串第二十四页,共三十五页,2022年,8月28日2/24/20231:16AM25对GNFA的一些特殊要求:起始状态有射到其他每一个状态的箭头,但是没有从其他任何状态射入的箭头有唯一的一个接受状态,并且它有从其它每一个状态射入的箭头,但是没有射到其他任何状态的箭头;除起始状态和接受状态外,每一个状态到自身或其他状态都有一个箭头。第二十五页,共三十五页,2022年,8月28日2/24/20231:16AM26DFA能够很容易的转化成这种特殊形式的GNFA添加一个新的起始状态和一个新的接受状态;从新的起始状态到老的起始状态有一个ε箭头;从每一个老的接受状态到新接受状态有一个ε箭头;如果一个箭头有多个标记(即两个状态之间有多个方向相同的箭头),则把它替换为一个标记着原先标记的并集的箭头;在没有箭头的状态之间添加φ标记。(此步骤不改变识别的语言,因为φ标记的箭头永远不能被使用)第二十六页,共三十五页,2022年,8月28日2/24/20231:16AM27第六章正则表达式6.1引例6.2正则表达式的形式定义形式定义6.2.2例题 6.3正则表达式与有穷自动机的等价性充分性证明必要性的证明(1)首先说明如何把DFA转换成GNFA(2)说明如何把GNFA转换成正则表达式第二十七页,共三十五页,2022年,8月28日2/24/20231:16AM28第一步:每一个GNFA都有一个等价的仅2个状态的GNFA每一个GNFA都有个状态(证明:GNFA都有起始状态和接受状态,且是两个不同的状态)每一个个状态的GNFA都可以转为为等价的状态的GNFA(如何转变才是本部分的关键所在)第二十八页,共三十五页,2022年,8月28日2/24/20231:16AM29第二步:仅2个状态的GNFA,可以很容易的转换成为正则表达式证明:因为只有起始状态和接受状态两个状态,因此,只有一个从起始状态到接受状态的转移箭头,这个箭头上的标记就是等价的正则表达式。解决这个关键环节:当k>2时,如何构造等价的少一个状态的GNFA第二十九页,共三十五页,2022年,8月28日2/24/20231:16AM30基本思路:任选一个不是起始状态和接受状态的中间状态
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国变频无卡旋切机数据监测研究报告
- 2025年度贷款居间服务合作协议集锦行业版
- 2024-2025学年高中物理课时分层作业16裂变和聚变含解析粤教版选修3-5
- 全国青岛版信息技术七年级上册专题二第1课二、《对无线路由器进行硬件连接》教学设计
- 钻镗床项目风险分析和评估报告
- 4《花之歌》教学设计-2024-2025学年统编版语文六年级上册
- 教科版高中信息技术必修1教学设计-7.1 信息技术对人类社会的影响
- 2025年度旅游度假区运营合作协议书范本
- 2020-2025年中国起绒坯布行业市场深度分析及投资战略研究报告
- 2025年度新能源电池运输与安全协议
- 2025年二级建造师聘用合同范文(三篇)
- 湖北省2025届高三T8联盟模拟考数学试卷(解析版)
- 2025年北京电子科技职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025年包头轻工职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 工业统计知识培训
- 2025年苏州高铁新城国有资产控股(集团)有限公司招聘笔试参考题库附带答案详解
- 郑州市2025年高中毕业年级第一次质量预测(一模) 化学试卷(含标准答案)
- 2025年临床医师定期考核必考复习题库及答案(1080题)
- 中国高血压防治指南(2024年修订版)
- GB/T 4340.1-2024金属材料维氏硬度试验第1部分:试验方法
- 生物补片及相关应用进展课件
评论
0/150
提交评论