- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理设计性实验四词法分析算法的实现.pdf
《编译原理》设计性实验四:
正规式和有穷自动机
实验目的:掌握正规式转换为不确定的有穷自动机,不确定的有穷自动机的确定化,确定的
有穷自动机的最简化的算法实现过程。
实验要求:在 6 学时内完成,要求以表格或图形的方式实现。
实验内容:分为如下 3 个部分完成:
4.1 正规式转换为不确定的有穷自动机的过程模拟
【目的与要求】
【目的与要求】
通过设计、编写和调试将正规式转换为不确定的有穷自动机的程序,使学生了解
Thompson 算法,掌握转换过程中的相关概念和方法,NFA 的表现形式可以是表格或图形。
【问题描述】
【问题描述】
任意给定一个正规式 r (包括连接、或、闭包运算),根据 Thompson 算法设计一个程序,
生成与该正规式等价的 NFA N 。
【算法描述】
【算法描述】
对于Σ上的每个正规式 R ,可以构造一个Σ上的NFA M ,使得L(M)=L(R) 。
步骤 1:首先构造基本符号的有穷自动机。
正规式 φ,构造NFA 为:⇒
对应正规式 ε,构造NFA 为: ⇒
对应正规式 a,构造NFA 为: ⇒
步骤 2 :其次构造连接、或和闭包运算的有穷自动机。
s,t 是正规式,相应 NFA 为
N(s),N(t) ,则正规式 R=s|t 的
NFA(R) 为:
s,t 是正规式,相应 NFA 为
N(s),N(t) ,则正规式 R=st 的
NFA(R) 为:
s 是正规式,相应 NFA 为N(s) ,
则正规式 R=s* 的NFA(R) 为:
【基本要求】
【基本要求】
算法实现的基本要求是:
(1) 输入一个正规式 r ;
(2) 输出与正规式 r 等价的 NFA 。
【测试数据】
【测试数据】
输入正规式:(a|b)*(aa|bb)(a|b)*
得到与之等价的 NFA N
【输出效果】
【输出效果】
注:上图中的“# ”代表ε。
【实现提示】
【实现提示】
1.NFA 的表示可以是图形或表格形式,状态之间的变换也可以直接表示为每两个状态
一组,表示为起始状态输入字符到达状态,如①a②,表示在①状态下读入输
入符号 a,变换到②状态。
2.实现时的数据结构定义如下:
(1) 用字符串存储正规式;
(2) 用结构体链表存放状态转换图
struct NFA
{ int from;
int to;
char *varch;
}表示从状态 from 到状态 to ,经过字符串varch 。
(3) 中间过程使用堆栈完成。
3 .实现过程
各运算符之间有优先关系,首先构造优先表,如表 8.3,然后通过符号栈及运算符栈(将
(、)、连接、或、及闭包运算作为运算符)来实现,采用算符优先原则进出栈或运算。初始
时添加开始和结束状态,将开始状态和#压入堆栈,并从左到右扫描输入符号串,遇到下一
个优先性低的运算符则出栈运算构造 NFA,碰到下一个优先性高的运算符则将运算符进栈。
表 8.3 正规式算符间的优先关系
i+1 | ( ) #
i
.
|
( = 错误
) 错误
# 错误 =
您可能关注的文档
- 立体仓库模拟装置的设计及控制(PLC控制类)控制部分设计.doc
- 站内优化之关键词排名稳定的最佳方法.pdf
- 站长入门如何保护你的域名注册信息.doc
- 竞争法域外适用所产生的法律冲突及其解决方法法律核心期刊论文.pdf
- 竞价拍卖的方式和程序.doc
- 竹子容器育苗技术应用研究.pdf
- 第3代核电AP1000关键设备工艺制造特点综述.pdf
- 第3部分_超链接的使用.ppt
- 第3部分程序员(.NET)(三级)_理论知识模拟试卷.doc
- 第55届美国血液病年会研究热点报道——慢性淋巴细胞白血病.pdf
- 2025蛇年红色渐变粒子动态效果品牌推广PPT模板系统.pptx
- 2025生态农场光伏玻璃幕墙项目第三季度财务述职报告样式.pptx
- 2025建筑行业QC小组施工工艺优化成果发布PPT架构.pptx
- 2025年金融科技蓝绿色竞品对比汇报框架模板.pptx
- 2025年第三季度科技行业数据看板与黄色微粒体排版设计方案.pptx
- 2025春季学期网络安全主题班会融合AR互动场景设计.pptx
- 2025端午节亲子活动策划方案卡通风格演示文档.pptx
- 2025年电梯故障应急处理主题班会情景教学课件.pptx
- 2025年线上读书会动态数据可视化PPT设计规范.pptx
- 2025年线上教育平台古风孟母三迁互动绘本PPT制作方案.pptx
文档评论(0)