- 5
- 0
- 约1.94千字
- 约 6页
- 2018-04-15 发布于浙江
- 举报
[2018年最新整理]实验二 DFA确定化实验报告
DFA确定化实验报告
课程设计的目的
通过课程设计进一步理解高级语言在计算机中的执行过程,加深对编译原理中重点算法和编译技术的理解,提高自己的编程能力,培养好的程序设计风格。同时通过某种可视化编程语言的应用,具备初步的Windows环境下的编程思想。掌握子集法,即将NFA转换为与之等价的DFA的算法。
课程设计的内容及要求
通过设计编写和调试将不确定的有穷自动机转换为与之等价的确定的有穷自动机的程序,使学生了解子集法,掌握转换过程中的相关概念和方法。
输入一个NFA
输出与之等价的DFA
实现原理
1、构造数据结构:
1)图的数据结构;
2)转换关系的数据结构。
2、求图的开始节点的ε-closure ,作为子集链表的头节点。然后对其ε-closure 中的每个节点,根据转换关系,求出新的子集,将新求出的子集插入到子集链表的尾部。
构造主要的数据结构:
struct diagram {
int snum; //节点编号
move *transfer; //转换关系
diagram *next;
};//图的数据结构
构造主要的数据结构:
struct subset {
int snum; //节点编号,
char closure[MAX]; //该节点中包含原来
的哪些节点,也就是其ε_closure
move *transfer; //来源关系
subset *next;
};//子集的数据结构
构造主要的数据结构:
struct move{
int point; //来自或转向哪一个节点
char input; //转向条件
move *next;
};//存储来源关系
算法实现与流程
(1)读取文件中的数据,组成图的初始链表。通常,用自然语言描述这个阶段的工作是烦琐的,用子集矩阵完成这阶段工作具有直观性和简单性。以下过程将描述用子集矩阵法完成从NFA(图1)到DFA的转化:
先将图1运用子集矩阵法,通过运算得到表1。其中s表示状态,即算法描述中的自己族C;a,b表示输入字符。该阶段,可能存在没有参加运算的状态,这些状态就是不可到达的状态。不可到达过程的运算也可通过图论中的可达性进行检查。
将表1转换矩阵中的所有子集重新命名得到表2 矩阵表示形式:
继而,将表2 用状态转换图描述可得到图2。图2 与图1进行比较可得到:状态数明显减少,并且消除了不确定性。
(2)将图的开始节点加入到其子集节点的closure数组中,调用求ε-closure的子函数求出图开始节点的ε-closure 存储在该子集节点的closure数组中。将该子集作为作为子集链表的头节点。
(3)遍历子集链表,对子集节点中closure数组中的每个元素,对其转换输入中的非ε元素,构造一个新的子集节点,将该输入之后所到达的节点插入新构造的子集节点的closure数组中,调用求ε-closure的子函数求该子集节点的ε-closure ,存储在该子集节点的closure数组中。同时构造构造转换关系节点,将该输入字母和来源节点编号填入该转换节点中,将该转换节点挂在刚才新构造的子集节点上。
(4)将新构造的子集节点插入子集链表中。
求ε-closure:遍历closure数组中的每个元素,如果该元素节点的转换输入(图数据结构)中存在ε,则把输入ε之后能到达的那个节点插入closure 数 组(尾插法)。
1)所有的插入操作,在插入的时候都需要比较即将插入的元素是否已经存在于插入对象中,如果已经存在,则不插入。
2)对于子集的插入,采用尾插法,插入的时候给新的子集编号。比较两个子集是否相同,是比较子集数据结构中的closure数组中的元素是否相同。如个有相同的子集,则只把转换关系节点加入到已有的子集节点的转换关系链表中,不插入该子集节点。
3)由于新的子集是在插入时才获得编号,所以,子集节点中转换关系链表和图中的转换链表有含义有所差别。图中的是目的节点,输入字符;子集中是来源节点,输入字符。
4)为了便于比较closure数组,在每次求完ε-closure之后,有必要对closure数组中的元素进行排序。
测试数据
输入表达式:(a|b)*(aa|bb)(a|b)*
结果输出及分析
软件运行环境及限制
Microsoft Visual C++ 6.0 运行环境。
心得体会
在手动从NFA确定DFA的基础上,将算法用C语言实现出来,加深了求DFA的算法的印象。通过设计编写和调试将不确定的有穷自动机转换为与之等价的确定的有穷自动机的程序,更加了解了其中的算法。
您可能关注的文档
- [2018年最新整理]安全生产责任书及安全技术交底.doc
- [2018年最新整理]安全生产许可证条例.ppt
- [2018年最新整理]安全生产责任目标分级管理.doc
- [2018年最新整理]安全生产风险管理体系知识考试题库.doc
- [2018年最新整理]安全生产考核知识点.doc
- [2018年最新整理]安全监护人培训课件.ppt
- [2018年最新整理]安全监理细则.doc
- [2018年最新整理]安全监理培训教材.doc
- [2018年最新整理]安全监理知识.ppt
- [2018年最新整理]安全监督基本知识.ppt
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 西师版五年级数学下册全套电子教案(表格式)(最全).doc VIP
- 2025年AWS认证CloudFront与Route53延迟_地理路由缓存行为专题试卷及解析.pdf VIP
- 2025年互联网营销师元宇宙互动剧本杀与沉浸式剧情营销专题试卷及解析.pdf VIP
- 2025年房地产经纪人投资回报率与投资回报率自动化分析专题试卷及解析.pdf VIP
- 2025年无人机驾驶员执照国际民航组织(ICAO)标准专题试卷及解析.pdf VIP
- 井下中央变电所高压开关整定计算说明书.pdf
- 2025年房地产经纪人商品房交付条件与标准专题试卷及解析.pdf VIP
- 异位妊娠护理教学查房【40页】.pptx VIP
- PLC-S7-200-SMART-与LabVIEW-OPC-以太网通信.pdf VIP
- 全球百强创新集群排行榜.pdf VIP
原创力文档

文档评论(0)