【编译原理】正则表达式
08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活。此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/details/7747205
《编译原理》第三章习题
![](https://img-my.csdn.net/uploads/201207/19/1342705981_8232.png)
3.3.2 试描述下列正则表达式定义的语言
1) a(a|b)*a
以a开头且以a结尾,中间由零个或多个a或b的实例构成的串
2) ((ε|a)b*)*
零个或多个a或b的实例构成的串
3)(a|b)*a(a|b)(a|b)
三个或多个a或b的实例构成的串,且倒数第三个实例一定为a。
4)a*ba*ba*ba*
零个或多个a的实例,三个b的实例构成的串。
!!5)(aa|bb)*((ab|ba)(aa|bb)*(ab|ba)(aa|bb)*)*
零个或偶数个a的实例,相同个数的b的实例构成的串
3.3.5
3) Comments, consisting of a string surround by /* and */, without an intervening*/, unless it is inside double-quotes (")
(\/\*) (.*^(\/\*)) (“(.*)”|ε) (.*^(\/\*)) (\*\/)
3.4.1 给出识别练习3.3.2中各个正则表达式所描述的语言的状态转换图
1) a(a|b)*a
![](https://img-my.csdn.net/uploads/201207/19/1342706265_6407.png)
![](https://img-my.csdn.net/uploads/201207/19/1342706299_7405.png)
![](https://img-my.csdn.net/uploads/201207/19/1342706618_5002.png)
![](https://img-my.csdn.net/uploads/201207/19/1342706665_1308.png)
![](https://img-my.csdn.net/uploads/201207/19/1342706393_4212.png)
3.6.2 为练习3.3.5中的每一个语言设计一个DFA或NFA
Comments, consisting of a string surround by /* and */, without an intervening*/, unless it is inside double-quotes (")
![](https://img-my.csdn.net/uploads/201207/19/1342706470_4166.png)
3.6.5 给出如下练习中的NFA的转换表
![](https://img-my.csdn.net/uploads/201207/19/1342706930_4999.png)
![](https://img-my.csdn.net/uploads/201207/19/1342706953_3766.png)
![](https://img-my.csdn.net/uploads/201207/19/1342706987_4007.png)
3.7.1 将下列图中的NFA转换为DFA
![](https://img-my.csdn.net/uploads/201207/19/1342707306_3850.png)
![](https://img-my.csdn.net/uploads/201207/20/1342775016_4841.png)
![](https://img-my.csdn.net/uploads/201207/20/1342775113_1079.png)
![](https://img-my.csdn.net/uploads/201207/20/1342775258_7098.png)
![](https://img-my.csdn.net/uploads/201207/20/1342775280_3383.png)
3.7.3 用算法3.23和3.20将正则表达式转换为DFA
由算法3.23得到NFA:
![](https://img-my.csdn.net/uploads/201207/20/1342775374_1479.png)
![](https://img-my.csdn.net/uploads/201207/20/1342775452_1264.png)
由算法3.23得到NFA:
![](https://img-my.csdn.net/uploads/201207/20/1342775484_7564.png)
![](https://img-my.csdn.net/uploads/201207/20/1342775545_2255.png)
由算法3.23得到NFA:
![](https://img-my.csdn.net/uploads/201207/20/1342775580_5116.png)
![](https://img-my.csdn.net/uploads/201207/20/1342775763_3279.png)
由算法3.23得到NFA:
![](https://img-my.csdn.net/uploads/201207/20/1342775822_6470.png)
![](https://img-my.csdn.net/uploads/201207/20/1342775904_5886.png)
转载请注明出处:http://blog.csdn.net/xiaowei_cqu/article/details/7764967
【编译原理】正则表达式相关推荐
- [系列][编译原理]正则表达式
关于正则表达式,作为软件工程师应该比较熟悉了.所谓正则表达式,就是表示字符串的格式.正则表达式r完全由它所匹配的串集来定义.这个集合称为由正则表达式生成的语言,写作L(r).此处的语言只是表示&quo ...
- 正则表达式引擎的构建——基于编译原理DFA(龙书第三章)——1 概述
说明:本系列文章介绍的算法均来自编译原理(龙书)一书,如果读者对代码没有兴趣,只想了解算法思路,完全可以阅读龙书相关章节内容,比我讲得清晰透彻. 序: 啃编译原理半年以来,任然徘徊在前4章,其间反反复 ...
- c语言正则表达式_CS143:编译原理|PA2:正则表达式和词法分析
本文使用 Zhihu On VSCode 创作并发布 这是本人实现斯坦福CS143变编程作业的笔记,对应第二次作业PA2.有关文章目录.环境搭建和一些说明请看第一篇:CS143:编译原理 | 环境搭建 ...
- [编译原理随记]正则表达式转为NFA状态图(Thompsion构造法)
上级文章 [编译原理随记]正则表达式记号和状态图:https://blog.csdn.net/qq_28033719/article/details/107067798 [编译原理随记]NFA转DFA ...
- 编译原理-正则文法与正则表达式的相互转化
正则文法与正则表达式的相互转化 前言 一.正则文法 1.定义 2.例子 二.正则表达式 1.定义 2.例子 三.转换规则 1.正则文法转换为正则表达式 2.正则表达式转换为正则文法 四.转换例子 1. ...
- 正则表达式引擎的构建——基于编译原理DFA(龙书第三章)——5 DFA最小化
完整引擎代码在github上,地址为:https://github.com/sun2043430/RegularExpression_Engine.git DFA最小化的算法原理 "DFA状 ...
- 学了编译原理能否用 Java 写一个编译器或解释器?
16 个回答 默认排序 RednaxelaFX JavaScript.编译原理.编程 等 7 个话题的优秀回答者 282 人赞同了该回答 能.我一开始学编译原理的时候就是用Java写了好多小编译器和 ...
- 我看过的编译原理方面的好文章
本文不定期更新,最后更新于2019-7-6 编译原理 编译原理三大经典书籍(龙书 虎书 鲸书) 前端为什么要会正则表达式 - 知乎 一次性搞懂JavaScript正则表达式之引擎 - 掘金 没有AST ...
- 添物 不花钱学计算机及编程(预备篇)— 编译原理
编译原理是将一门语言翻译为另一门语言的学科.如果您只是想当个简单的程序员是可以不用学习的,或者有个了解就可以.但是如果您想更好的发展,就要很好的掌握了. 这门课程最大的特色就是,要自己写代码学习,不能 ...
最新文章
- 腾讯天衍实验室夺世界机器人大赛双冠军,新算法突破脑机接口瓶颈
- Jquery调用webservice
- 【计算机网络】数据链路层 : 差错控制 ( 检错编码 | 奇偶校验码 | CRC 循环冗余码 )★
- 开源使得所有的软件卖成白菜价,但终将普惠世界!
- 信息系统项目管理师优秀论文:论信息系统范围管理02
- python学习-列表的操作(常用函数均会介绍)
- postman新手使用教程
- CleanCodeHandbook Chapter 7: Stack(39-41)
- Excel2010学习笔记(二):公式函数篇
- 何恺明Focal Loss改进版!GFocal Loss:良心技术,无cost涨点
- python开发贴吧_python爬虫-贴吧
- Cypress UI 自动化测试框架
- 【React之文件的运行】用webstorm运行npm,实现网页的刷新
- 【TcaplusDB知识库】快速上手TDR表的增删查改操作
- 物理Standby数据库的文件路径转换(1)
- 飞桨 DNN波士顿房价预测
- cf刷题记录- 5 1
- 学习ARM开发(10)
- IIS 配置PHP环境,可以运行PHP网站
- 点到线段的最短距离算法
热门文章
- 计算机视觉常用算法整理
- 程序员面试常见问题及回答技巧
- 关于清空表数据的几种sql语句及区别
- 手把手教你用Python网络爬虫获取壁纸图片
- 山东青岛电子计算机技校,官方公布 | 青岛市2017年中职技校录取分数线
- 视频教程-零基础学Java编程—Java从小白到大咖-Java
- python序列解包求水仙花数_790.琉璃菜的糖浆欠火或过火,都会影响成品的( )。
- 174_技巧_Power BI 动态格式(万|亿)
- 2022年3月份报告合辑 附下载
- 心脏遥测监控系统服务器,移动心脏遥测可长时间监测患者心律 诊断率高达61%...