上机实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理报告 PAGE 13 编译原理报告 正规式转化为NFA 班级:191131班 学号:20131002284 姓名:李豪强 指导老师:刘远兴 日期:2015/10/20 前期准备 摘要 题目:正规表达式→NFA 问题 实习时间:2015/10/12 【问题描述】 正规表达式→NFA问题的一种描述是: 编写一个程序,输入一个正规表达式,输出与该文法等价的有限自动机。 【基本要求】 = 1 \* GB3 ①掌握有限自动机、正规表达式、正规文法之间的转换算法,有些可帮助掌握有限自动机的确定化与最小化,还有些可帮助理解整个词法分析器的构造过程。 = 2 \* GB3 ②以班为单位,每个班内3-5人为一组,自由组合。选一人为组长,要适当分工,要分工明确。 = 3 \* GB3 ③需上交:源程序,实验报告。实验报告要交电子档报告,重点写自己那部分的设计思路和实现方法。 分工: 我们小组具体分工如下: 陈 渊:负责总体规划,以及系统整合 李豪强:负责整个程序架构的设计及软件测试; 蔡 路:负责伪代码(核心算法)的实现; 李 涛,陈 渊:负责输入输出处理及用户界面设计 祝莹倩,樊润宇:数据结构的分析处理 ; 1.需求分析 (1)首先要获取用户需要转化的正规式; (2)然后判断用户输入的正确与否,并予以提示; (3)运用正规式转化NFA的算法思想进行词法分析 (4)设置初始状态X,终态Y,过程态用数字表示:0 1 2 3……… 测试数据:abb 输出结果应为:X X-a-0 Y 0 0-b-1 1 1-b-Y 测试数据:(a|b)*abb 输出结果应为:X X - ~ -3 Y 0 0-a-1 1 1-b-2 2 2-b-Y 3 3- ~ -0 3-a-3 3-b-3 设计 2.1总体设计 2.1.1设计思想 数据结构 *** 该部分由小组成员樊润宇和祝莹倩同学共同完成 *** 2.2模块设计(重点) 程序架构的设计: 此次实验的要求是将一个输入的任意合法正规式转换为相应的不确定的有穷自动机(NFA),由教材上所提出的方法可知,在构造有穷自动机的时候,第一步应先将正规式分解为可以直接转换为NFA的正规式,然后将所有的状态经过条件连接得到最终的NFA。所以应设计函数将正规式分解,然后由转换函数得出NFA。 过程或函数调用关系图(流程图) 2.3函数的功能实现(解释所写函数的作用,写函数的声明原型及其注释。) void divide(string s, vector Node* *N, int begin, int end);//用于将正规式细化 void insert(string s, vector Node* *N, int head, int tail, char state[]);//将细化后的正规式转 //化为应的NFA状态并将其转换条件一起存储到N中 void Display(vector Node* N);//输出NFA void display();//输出当前状态以及条件和经此条件所能到达的状态 2.4 算法设计 从正则表达式到NFA的转换方法(核心算法): **** 该部分由小组成员蔡路同学完成 *** 3.使用手册 (1)数据输入: 在输入时对于任何符号都从左到右直接输入(例:不必对于*进行特别的输入处 理,直接按键输入即可) 功能键用法: “请输入正规式:”后的文本框用于用户输入正规式 “转化结果:”后的文本框由于新显示正规式对应的NFA “转化”按钮用于执行将输入文本框中的正规式转化为NFA并在输出文本框中输 出结果 “关闭”按钮用于关闭对话框。 4.测试结果 测试数据:abb 输出结果应为:X X-a-0 Y 0 0-b-1 1 1-b-Y 屏幕截图: 测试数据:(a|b)*abb 输出结果应为:X X - ~ -3 Y 0 0-a-1 1 1-b-2 2 2-b-Y 3 3- ~ -0 3-a-3 3-b-3 屏幕截图: 5.总结 首先,这次上机实验增强了我们团队合作能力,我们小组成员在一起商讨设计思路之后,由组长安排每个人的任务,然后每人完成自己的任务后交由组长整理整合,在这个过程中每人都要参与商讨确定每部分内容应安排在哪部分,这不仅增强了我们的团队合作能力更加深了彼此之间的友情。另外,在此次上机实习中我相信我们都对正规式到NFA的转换有了更加深

文档评论(0)

135****0879 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档