编译原理nfa转化为dfa的转换算法及实现

编译原理nfa转化为dfa的转换算法及实现

ID:9800802

大小:731.00 KB

页数:17页

时间:2018-05-10

编译原理nfa转化为dfa的转换算法及实现_第1页
编译原理nfa转化为dfa的转换算法及实现_第2页
编译原理nfa转化为dfa的转换算法及实现_第3页
编译原理nfa转化为dfa的转换算法及实现_第4页
编译原理nfa转化为dfa的转换算法及实现_第5页
资源描述:

《编译原理nfa转化为dfa的转换算法及实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、课程设计报告书设计名称:NFA转化为DFA的转换算法及实现课程名称:编译原理学生姓名:专业:)班别:学号:指导老师:日期:2013年7月5日17目录目录21前言31.1选题的依据和必要性31.2课题意义32NFA转化为DFA的算法及实现32.1基本定义32.1.2DFA的概念42.1.3NFA与DFA的矩阵表示52.1.4NFA向DFA的转换的思路63DFA的化简63.1化简的理论基础63.2化简的基本思想74程序设计74.1程序分析74.1.1流程图74.1.2子集构造法94.2实现代码11171.前言1.1选题的依据和必

2、要性由于很多计算机系统都配有多个高级语言的编译程序,对有些高级语言甚至配置了几个不同性质的编译程序。从功能上看,一个编译程序就是一个语言翻译程序。语言翻译程序把源语言书写的程序翻译成目标语言的等价程序。经过编译程序的设计可以大大提高学生的编程能力。编译程序的工作过程通常是词法分析、语法分析、语义分析、代码生成、代码优化[1]。由于现在有很多词法分析程序工具都是基于有穷自动机的,而词法分析又是语法分析的基础[2],所以我们有必要进行有穷自动机的确定化和最小化。1.2课题意义编译程序的这些过程的执行先后构成了编译程序的逻辑结构[

3、3]。有穷自动机(也称有限自动机)作为一种识别装置,它能准确地识别正规集,即识别正规文法所定义的语言和正规式所表示的集合,引入有穷自动机这个理论,正是为词法分析程序的自动构造寻找特殊的方法和工具[4]。NFA转化为DFA的理论在词法构造至整个编译器构造过程中起着至关重要的作用,同时它们被广泛应用于计算机科学的各个领域,它们与计算机其它学科也有着密切的联系。2NFA转化为DFA的算法及实现编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代

4、码生成、存储管理、代码优化和目标代码生成。进行NFA转换为DFA的词法分析和语法分析,首先要对目标对象有有所了解,这就需要对NFA、DFA进一步了解。2.1基本定义NFA,也称不确定的有穷自动机,是由一个五元式定义的数学模型,特点是它的不确定性,即在当前状态下,读入同一个字符,可能有多个下一状态。DFA,也称确定的有穷自动机,也是由一个五元式定义的数学模型,相对的特点是它的确定性,即在当前状态下,读入同一个字符,最多有一个后继状态。172.1.1NFA的概念NFA(nondeterministicfinite-stateau

5、tomata)即非确定有限自动机,一个非确定的有限自动机NFAM’是一个五元式:NFAM’=(S,Σ∪{ε},δ,S0,F)其中S—有限状态集S0—初态集F—终态集δ—转换函数S×Σ∪{ε}→2S(2S--S的幂集—S的子集构成的集合)状态转换图如图2.1.1:S1Z10P10,1图2.1.1NFA状态转换图2.1.2DFA的概念DFA(deterministicfinite-stateautomata)即确定有限自动机,一个确定的有限自动机DFAM是一个五元式:M=(S,Σ,δ,S0,Z)其中:S—有限状态集Σ—输入字母表

6、δ—映射函数(也称状态转换函数)S×Σ→Sδ(s,a)=S’,S,S’∈S,a∈ΣS0—初始状态S0∈S17Z—终止状态集ZÍSPZPPaababba,b图2.1.2DFA状态转换图2.1.3NFA与DFA的矩阵表示一个NFA或者DFA还可以用一个矩阵[5]表示,矩阵也可以说是状态转换表,它的优点是可以快速访问给定的状态在给定的输入字符时能转换到的状态集。矩阵,每个状态一行,每个输入符号和ε(如果有需要的)各占一列,表的第i行中与输入符号a对应的表项是一个状态集合,表示NFA或者DFA在状态i输入a时所能到达的状态集合(DF

7、A的集合唯一),即δ(i,a)[6]。(7)如图2.1.1可用表2.3.1.表示:表2.3.1NFA状态转换表输入状态01S{P}{S,Z}P{}{Z}Z{P}{P}如图2.1.2可用表2.3.2表示:表2.3.2DFA状态转换表输入状态ab012171322133332.1.4NFA向DFA的转换的思路从NFA的矩阵表示中可以看出,表项通常是一状态的集合,而在DFA的矩阵表示中,表项是一个状态,NFA到相应的DFA的构造的基本思路是:DFA的每一个状态对应NFA的一组状态DFA使用它的状态记录在NFA读入一个输入符号后可能

8、达到的所有状态[4]。2.2NFA和DFA之间的联系在非确定的有限自动机NFA中,由于某些状态的转移需从若干个可能的后续状态中进行选择,故一个NFA对符号串的识别就必然是一个试探的过程。这种不确定性给识别过程带来的反复,无疑会影响到FA的工作效率。而DFA则是确定的,将NFA转化为DFA将

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

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

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