词法分析器构造过程模拟器的设计与实现文献综述
2020-04-25 20:21:44
词法分析主要任务是按照语言的此法规则从源程序逐个识别单词,把字符串形式的源程序转换成他们的内部表示,是程序编译的基础,也是程序编译的第一阶段。词法分析技术在信息检索,命令语言的识别,报文格式的识别中也有广泛的应用。然而,当前编译原理的课程中,教师只能以手工构造或者静态的课件来讲解实例。手工计算费时费力,不能给人完整的印象。静态的课件缺乏交互,效果不佳。编译原理书籍中讲解词法分析的部分,大多偏重原理的讲解,没有具体且详尽的实例讲解;比较成熟的测法分析自动生成工具用法复杂,不易在课堂中展示,且使用时只能输出最终的DFA,不能呈现词法分析程序的各个构造过程。词法分析模拟器能够弥补以上的不足,生动的表现出词法分析自动构造的过程。
同时,通过词法分析自动构造程序,能够加深对于编译原理技术尤其是词法分析技术的理解,同时还能提升编程的能力。
{title}2. 研究的基本内容与方案
{title}本课程设计拟完成从正规式到NFA,NFA到DFA,DFA的最简化的过程。程序拟采用c#语言来实现。
在算法层面,程序可以让用户自行输入正规式,输入的正规式可以包括ASCII吗,使用|表示或符,*表示闭包符,~表示连接符,使用转义字符|表示字符|,使用*表示字符*,使用~表示字符~。在读取了用户输入的正规式之后,对正规式中的转义字符进行预处理,然后使用正规式字符串构造出树状结构的正规式数据结构。接着,用后续遍历正规式树状结构的方法,一边遍历的同时一边使用McMaughton-Yamada-Thompson 算法构造对应的DNF状态机,再使用子集法构将NFA转化为DFA。然后使用同类划分法将DFA转化为最简化的确定的有穷自动机。最后将最简化的确定的有穷状态机生成程序驱动表格。
在用户交互层面,计划使用unity引擎实现。Unity引擎具有跨平台的特点,通过它可以生成在pc平台,Android平台,IOS平台运行的可执行程序。
3. 参考文献
1. 王涛,卢军,张凯兵. 一种基于图形可视化的编译原理计算机辅助教学系统[J]. 湖北工程学院学报,2015,03:85-88.
2. 许智宏,李显,高静静. 高级语言编译过程可视化研究[J]. 教育教学论坛,2012,10:30-31.
3. 但静培,渡边坦. 基于编译技术的程序可视化[J]. 计算机应用研究,2002,10:51-52 7