NFA转化为DFA的转换算法及实现.doc

NFA转化为DFA的转换算法及实现.doc

ID:56907439

大小:155.00 KB

页数:22页

时间:2020-07-23

NFA转化为DFA的转换算法及实现.doc_第1页
NFA转化为DFA的转换算法及实现.doc_第2页
NFA转化为DFA的转换算法及实现.doc_第3页
NFA转化为DFA的转换算法及实现.doc_第4页
NFA转化为DFA的转换算法及实现.doc_第5页
资源描述:

《NFA转化为DFA的转换算法及实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、编译原理课程实践报告设计名称:NFA转化为DFA的转换算法及实现二级学院:数学与计算机科学学院专业:计算机科学与技术班级:计科本091班姓名:学号:指导老师:日期:2012年6月28日摘要有穷自动机分为确定的有穷自动机(DFA)和不确定的有穷自动机(NFA)两类。两者各有特点、作用于不同的地方,因此需要进行转化。NFA转化为DFA的理论在词法构造乃至整个编译器构造过程中起着至关重要的作用,同时它们被广泛应用于计算机科学的各个领域,它们与计算机其它学科之间也有着很密切的关系。本文主要介绍基于编译器构造技术中的由NFA转化为DFA的算法设计和实现技术:主

2、要包括NFA转化为与其等价的DFA所使用的子集构造算法以及把DFA化简的算法,实现词法分析,最后使用VisualC++语言加以实现。NFA转化为与其等价的DFA需分两步进行:1、构造NFA的状态的子集的算法;2、计算ε-closure。完成这些子模块的设计后,再通过某一中间模块的总控程序对其调用,最后再由主程序总调用,也就实现了NFA转化为其等价的DFA,接下来就是以分割法的思想为指导实现DFA的化简,最后并以实例加以说明。关键词:有穷自动机;NFA;DFA;转化;化简目录1前言31.1选题的依据和必要性31.2课题意义32NFA转化为DFA的算法及

3、实现42.1基本定义42.1.2DFA的概念52.1.3NFA与DFA的矩阵表示52.1.4NFA向DFA的转换的思路63DFA的化简73.1化简的理论基础73.2化简的基本思想73.3化简的代码实现74程序设计144.1程序分析144.1.1流程图144.1.2子集构造法164.2具体的转换过程181前言1.1选题的依据和必要性由于很多计算机系统都配有多个高级语言的编译程序,对有些高级语言甚至配置了几个不同性质的编译程序。从功能上看,一个编译程序就是一个语言翻译程序。语言翻译程序把源语言书写的程序翻译成目标语言的等价程序。经过编译程序的设计可以大大

4、提高学生的编程能力。编译程序的工作过程通常是词法分析、语法分析、语义分析、代码生成、代码优化[1]。由于现在有很多词法分析程序工具都是基于有穷自动机的,而词法分析又是语法分析的基础[2],所以我们有必要进行有穷自动机的确定化和最小化。1.2课题意义编译程序的这些过程的执行先后构成了编译程序的逻辑结构[3]。有穷自动机(也称有限自动机)作为一种识别装置,它能准确地识别正规集,即识别正规文法所定义的语言和正规式所表示的集合,引入有穷自动机这个理论,正是为词法分析程序的自动构造寻找特殊的方法和工具[4]。NFA转化为DFA的理论在词法构造至整个编译器构造过

5、程中起着至关重要的作用,同时它们被广泛应用于计算机科学的各个领域,它们与计算机其它学科也有着密切的联系。2NFA转化为DFA的算法及实现编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。进行NFA转换为DFA的词法分析和语法分析,首先要对目标对象有有所了解,这就需要对NFA、DFA进一步了解。2.1基本定义NFA,也称不确定的有穷自动机,是由一个五元式定义的数学模型,特点是它的不确定性,即在当前状态下,读入同一个字符,可

6、能有多个下一状态。DFA,也称确定的有穷自动机,也是由一个五元式定义的数学模型,相对的特点是它的确定性,即在当前状态下,读入同一个字符,最多有一个后继状态。2.1.1NFA的概念NFA(nondeterministicfinite-stateautomata)即非确定有限自动机,一个非确定的有限自动机NFAM’是一个五元式:NFAM’=(S,Σ∪{ε},δ,S0,F)其中S—有限状态集Σ∪{ε}—输入符号加上ε,即自动机的每个结点所射出的弧可以是Σ中一个字符或是ε.S0—初态集F—终态集δ—转换函数S×Σ∪{ε}→2S(2S--S的幂集—S的子集构成

7、的集合)状态转换图如图2.1.1:S1Z10P10,1图2.1.1NFA状态转换图2.1.2DFA的概念DFA(deterministicfinite-stateautomata)即确定有限自动机,一个确定的有限自动机DFAM是一个五元式:M=(S,Σ,δ,S0,Z)其中:S—有限状态集Σ—输入字母表δ—映射函数(也称状态转换函数)S×Σ→Sδ(s,a)=S’,S,S’∈S,a∈ΣS0—初始状态S0∈SZ—终止状态集ZÍSPZPPaababba,b图2.1.2DFA状态转换图2.1.3NFA与DFA的矩阵表示一个NFA或者DFA还可以用一个矩阵[5]

8、表示,矩阵也可以说是状态转换表,它的优点是可以快速访问给定的状态在给定的输入字符时能转换到的状态集。矩阵,每

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。