编译原理课程实践报告 设计名称:NFA 转化为 DFA 的转换算法及实现 二级学院: 数学与计算机科学学院 专 业: 计算机科学与技术 班 级: 计科本 091 班 姓 名: 学 号: 指导老师: 日 期: 2012 年 6 月 28 日 摘要 有穷自动机分为确定的有穷自动机(DFA)和不确定的有穷自动机(NFA) 两类。两者各有特点、作用于不同的地方,因此需要进行转化。NFA转化为DFA 的理论在词法构造乃至整个编译器构造过程中起着至关重要的作用,同时它们 被广泛应用于计算机科学的各个领域,它们与计算机其它学科之间也有着很密 切的关系。 本文主要介绍基于编译器构造技术中的由NFA转化为DFA的算法设计和实现 技术:主要包括NFA转化为与其等价的DFA所使用的子集构造算法以及把DFA化简 的算法,实现词法分析,最后使用Visual C+语言加以实现。 NFA转化为与其等价的DFA需分两步进行:1、构造NFA的状态的子集的算 法;2、计算-closure。完成这些子模块的设计后,再通过某一中间模块的总 控程序对其调用,最后再由主程序总调用,也就实现了NFA转化为其等价的 DFA,接下来就