编译原理合设计
指导教师:李宏芒
专业班级:信安11-1
姓 名:朱航宇
学 号
一.课程设计目的
《编译原理》是计算机专业的一门重要的专业课程,其中包含大量软件设计思想。大家通过课程设计,实现一些重要的算法,或设计一个完整的编译程序模型,能够进一步加深理解和掌握所学知识,对提高自己的软件设计水平具有十分重要的意义。
二.课程设计内容
(12,13题:12题 DFA 状态最少化的程序实现和13题 把NFA确定化为DFA 的算法实现,合并为一题,将NFA确定化为DFA,再将DFA化简即最小化。)
我在选择课程设计题目时,只选择了12题DFA的最小化。但由于12题工作量较小同时为了提高我的编程能力我将13题NFA确定化为DFA,将这两题合并为一题,即NFA确定化到最小化的实现。NFA的确定化和DFA的最小化主要是为了更好地使用状态转换图构造词法分析程序和词法分析程序的自动生成。设计并实现将NFA确定化为DFA的子集构造算法以及DFA的最小化,从而更好地理解有限自动机之间的等价性,掌握词法分析器自动产生器的构造技术。
三.设计要求设计的基本原理
5.2各模块设计
1.有限自动机状态转换结构的定义和状态信息的输入输出
有限状态机的状态结点,边和终结符(即输入字符)均定义为字符串,利用
C++标准模板库string中的函数来实现定义和后续操作,以方便实现和简化
程序。具体如下程序片段:
string NODE; //结点集合
string CHANGE; //终结符集合
int N; //NFA边数
struct edge
{ //状态图的边,包含一条边的起点,终点和终结符
string first;
string change;
string last;
};
struct chan
{ //状态转换矩阵集合
string ltab; //状态子集I
string jihe[MAXS]; //状态子集Ix
};∑={ a1 , … , ak },构造一张表,此表的每一行含有k+1列。置该表
的首行首列为ε_Closure(X)。一般而言,如果某一行的第一列的状态子
集已经确定,记为I,那么置该行的i+1列为Iai(i=1, … ,k)。然后检查该
行上的所有状态子集,看它们是否已在表的第一列出现,将未曾出现者
填入到后面空行的第一列,为方便比较,在构造状态子集过程中,可对
子集中的元素进行排序。重复上述过程,直到出现在第i+1(i=1, … ,k)
列上的所有状态子集都已经在第一列上出现。因为M的状态子集的个数
是有限的,所以上述过程必定在有限步内终止。按照构造此表的方法思
想用程序实现有限自动机M状态子集的构造,然后对上表中第一列的个
各状态子集重命名得到一个新的状态转换矩阵,该状态装换矩阵对应一个与NFA M等价的DFA M’。
例如下图为一个非确定有限自动机的状态转换图
上面的状态转换图按照子集法生成下表的状态转换矩阵
I Ia Ib {X,5,1} {5,3,1} {5,4,1} {5,3,1} {5,3,1,2,6,Y} {5,4,1} {5,4,1} {5,3,1} {5,4,1,2,6,Y} {5,3,1,2,6,Y} {5,3,1,2,6,Y} {5,4,1,6,Y} {5,4,1,6,Y} {5,3,1,6,Y} {5,4,1,2,6,Y} {5,4,1,2,6,Y} {5,3,1,6,Y} {5,4,1,2,6,Y} {5,3,1,6,Y} {5,3,1,2,6,Y} {5,4,1,6,Y}
对上表中第一列的各状态子集重命名
{X,5,1} = 0;5,3,1} = 1;{5,4,1} = 2;{5,3,1,2,6,Y} = 3;{5,4,1,6,Y} = 4;
{5,4,1,2,6,Y} = 5;{5,3,1,6,Y} = 6
则重命名之后上表转化为如下表的状态转换矩阵,该转换矩阵对
S a b 0 1 2 1 3 2 2 1 5 3 3 4 4 6 5 5 6 5 6 3 4
该表的状态转换矩阵对映一个与上述NFA M等价的未化简的DFA M’,其中终态为3,4,5,6。其状态转换图如下所示
3.DFA的最小化,采用等价状态划分的方法
对DFA的化简任然要用到上述的Ia函数,对DFA M的状态集S进行划分的步骤是:首先把S的终态和非终态分开,分成两个子集,形成基本划分
您可能关注的文档
- 轴承基础知识培训解析.ppt
- 轴承偏差,形位公差,粗糙度解析.ppt
- 轴承润滑的控制及其重要性解析.ppt
- 轴承寿命的计算解析.ppt
- 轴承损坏的原因解析.ppt
- 轴对称、等腰三角形经典练习题解析.doc
- 轴固有频率计算解析.doc
- 轴类零件的数控加工工艺设计与编程毕业设计解析.doc
- 轴流风机运行解析.ppt
- 轴线平板车培训教材解析.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 交流转辙机道岔动作电流故障曲线分析信号集中监测课件.pptx VIP
- 2025届东北三省三校高三下学期第一次联合模拟考试政治试题(原卷版+解析版).docx VIP
- 养老服务质量检测90项.pdf VIP
- 光谱分析图谱与标志.docx
- 2025新课标中考英语词汇.pdf VIP
- T_CNPHARS 0001-2025 群体药动学药效学分析标准操作规范.pdf VIP
- (2026年)血浆置换及血浆分离吸附护理要点PPT课件.pptx VIP
- 农村狗狗交配的全过程,让你看了有点不可置信.pdf VIP
- 医院培训课件:《死亡医学证明(推断)书》规范填写及死因链基础知识.pptx VIP
- 健康体检表样表最新文档.docx VIP
原创力文档

文档评论(0)