编译原理 --- 正规式和有限自动机
第一部分 --- 正规集和正规表达式
1.程序语言定义的所有合法字的集合就是正规集,正规集由正规式来表示,二者之间的关系是:
1.B和C都是正确答案,一波塞洛的定义是一个长度为0的字( “” --- 字是由字符组成的)
同时一波塞洛也是正规式,它所对应的正规集是只有一个空字(一波塞洛,长度为0的字)的集合
1.在这一题中A和C都是正确的,首先从数学的定义上讲这个符号表示的是空集(没有元素的集合),当它作为正规式的时候,它所表示的正规集为空集
2.一波塞洛作为正规式时表示的是具有一个空字元素的正规集,而另一个符号作为正规式时表示的是没有元素存在的正规集
1.这道题中的A,B,C都是正确的。首先这个a是字符表中的一个字符,其次这个a也可以是只有a这个字符的字(字符串),同时还是表示只有一个元素,且这个元素是只有一个字符a的字的正规集的正规式
1.第一条中的 | 表示的意思是 “ 或 ” ,然后两个正规集的并集依然是正规集,两个正规式的并集依然是正规式
2.第二条中的 . 号的意思是 “字集合的连接运算”,然后两个正规集做连接运算后依然是正规集,两个正规式做连接运算后依然是正规式(一般我们都会直接省略掉这个点和括号,将两个正规式的连接运算写作 e1e2)
3.第三条中的 * 号的意思是 “ 字集合的闭包运算 ” ,然后一个正规集在进行闭包运算依然是正规集,一个正规式在进行闭包运算后依然是正规式
1.当两个正规式表示的正规集相等的时候,我们称这两个正规式之间等价
1.最后一条的性质是 e1e2 不等于 e2e1 --- 两个正规式的连接顺序不同得到的结果不同 --- 对应的正规集为 ab 和 ba 的区别
1.将每一个合法字符视作一个正规集,然后找到这个正规集对应的正规式,接着我们将得到的所有的正规式取并集(正规集同理),这样我们就能够得到程序中所有合法字的正规集以及这个正规集对应的正规式了
第二部分 --- 确定有限自动机(DFA)
单值部分映射要求我们的转换函数在给定的状态和输入字符只能够得到唯一确定的一个状态
1.如果一个状态结点处有多余n条的箭弧射出的话,那么这数量大于n条的箭弧中一定会有字符重复的箭弧,此时就会出现输入一个状态和一个字符到状态转换函数后得到了多个状态,违背了单值部分映射的规定。
第三部分 --- 非确定有限自动机(NFA)
1.非确定有限自动机和确定有限自动机的区别在于转换函数和初态
2.对于非确定有限自动机而言,其转换函数是在输入一个当前状态和一个字(字由字符组成,对于确定有限自动机而言输入的是字符)后,得到一个状态集合(这里就体现了非确定有限自动机的非确定性,对于确定有限自动机而言得到的是一个新的状态)
3.对于非确定有限自动机而言,其初态是一个初态集合而不是一个初态(这里也体现了非确定有限自动机的非确定性,对于有限自动机而言则是只有一个初态)
4.确定有限自动机之所以是确定的,因为:
一.它的初态唯一
二.它的状态转移函数是单值的部分映射,一个状态的后继状态唯一
对于非确定有限自动机而言就是反过来
在非确定有限自动机的状态图中,除了传字作为判断条件的弧上的标记,我们还可以传正规式,此时的意思是当我们传给状态函数的字是正规式对应的正规集中的一个字的话,就发生状态转换
1.通过任意两个有限自动机得到的字的集合相等的话,则称这两个有限自动机等价
2.任意一个非确定有限自动机都存在一个确定有限自动机与其等价,所以说这两个自动机的识别能力是相同的
1.DFA更有利于程序实现,NFA更有利于人工设计
编译原理 --- 正规式和有限自动机相关推荐
- 编译原理——正规式转DFA算法概述
一.概念概述 给定一个单词,判断该单词是否满足我们给定的单词描述规则,需要用到编译原理中词法分析的相关知识,其中涉及到的两个很重要的概念就是正规式(Regular Expression)和有穷自动机( ...
- 编译原理——正规式、NFA转换构造DFA、DFA的化简
一.DFA和NFA的区别 NFA:非确定有限自动机 DFA:确定有限自动机 NFA在同一状态,可以有多条出边,DFA在同一状态,只能有一条出边: NFA的初态可以具有多个,DFA的初态是唯一的: 比如 ...
- 编译原理 —— 正规式、正规集和正则定义
正规式的定义和运算定律 正规式和正则表达式都是通过一定的语法规则来描述文法,但不是同一个概念. 正规式是一种用来描述正则语言的更紧凑的表示方法 正规式可以由较小的正规式按照特定规则递归地构建.每个正规 ...
- 正规式和有限自动机二(NFA转DFA)
思路(流程图): 代码(基于正规式和有限自动机一): 正规式和有限自动机一:https://blog.csdn.net/Willy__QI/article/details/102981220 from ...
- 词法分析(五):正规式与有限自动机
词法分析概述 唉,不想学习,老是想起别的事情 这篇博客讲的是正规式和有限自动机的等价性, 为NFA写出等价的正规式,为一个正规式构造等价的NFA 有了NFA与正规式的关系,就把正规式和前面所述串接起来 ...
- 编译原理(正规式、有限自动机)
正规文法(3型文法) 文法是编译原理的基础,是描述一门程序设计语言和实现其编译器的方法(文法是用于描述语言的语法结构的形式规则).由正规文法(3型文法)产生的语言称为正规集. 之所以用"正规 ...
- 编译原理_正规集和正规式_有限自动机
** 正规集和正规式 ** 也就是说程序设计语言的合法单词是 正规集,而正规式可以用来表示正规集 正规集是集合 正规式的等价可以转换为集合的等价来证明 将每一类的单词符号写成一个正规式,通过或运算将这 ...
- 正规式和有限自动机(转自csdn)
计算机只能读懂0或者1,而我们用高级语言编写的程序(原程序)是抽象的符号化了的东西,为了让计算机读懂我们写的程序,必须把我们书写的程序翻译成某台机器能够读懂的(机器)语言(目标程序),这就是翻译程序的 ...
- 编译原理词法分析中的有限自动机
上一节中我们学习了正则表达式,它可以用来识别模式.这一节讲讲有限自动机.在知道了有限自动机的基本概念之后,会讨论如何把正则表达式转化为实际程序.宏观地,正则表达式依次转化为NFA.DFA和实际程序. ...
- 编译原理学习笔记一(待续)
这几天忙着学英语,同时在学习编译原理,对这门课很感兴趣,已经制作了词法分析器,同时还在补充这个分析器的功能,也准备着手开始写语法分析器,看到最后能不能连在一起,我想如果能够将整套编译器的流程跑下来真的 ...
最新文章
- python 生成验证码
- 回归分析中的“回归”
- linux HZ Tick Jiffies
- boost::exception的用法测试
- 多重循环控制之打印金字塔
- oracle sequence last_number,关于oracle序列的LAST_NUMBER
- 从Linus Torvalds一封发飙的电邮开始谈设备树究竟是棵什么树?
- Ajax 编程基础(一)
- TypeError: missing 1 required keyword-only argument-python中的报错问题
- bzoj1066 [SCOI2007]蜥蜴 网络流复制点模型
- MCU加密技术分析(二)
- maven集成tomcat插件启动报错
- Atitit. 异常的使用总结最佳实践java .net php Vo8f
- 佳易王收银管理软件和扫码通M800大部分扫码支付平台对接步骤:
- VSCode工具右键单击后无Open In Default Browser选项
- android 头像修改
- Macbook Pro 安装 win10 单操作系统
- scrollbars属性,MultiLine 属性
- win10下如何使用linux系统
- 史玉柱给创业者的五条建议
热门文章
- Android 调用语音模块
- Python 爬取豆瓣影片短评 生成词云统计
- 鸿蒙蕴含的哲理,苏轼最不该被忽视哲理名句:“人生到处知何似,应似飞鸿踏雪泥”...
- pytorch中加入注意力机制(CBAM),以ResNet为例。到底要不要用ImageNet预训练?如何加预训练参数?
- PIL库实现图像手绘效果
- 使用xftp怎么向服务器传输文件,如何使用文件传输软件Xftp
- adb 连接某个wifi_Android中如何使用WIFI来连接ADB
- ENSP模拟实验OSPF NSSA区域
- 阿里云吴磊创办yunQ云桥,完成银杏谷资本2000万元天使轮融资
- 前端面试常问的问题(必须掌握)