下载后可任意编辑《编译原理》课程实验报告题目 词法分析 专业 华侨大学 09 软件工程 班级 1 班 学号 姓名 日期 2024-4-5 源码下载地址:http://www
cc/file-1179505
实验题目词法分析二
实验环境(操作系统,开发语言)操作系统:Windows 7开发语言:JAVA 语言开发工具:MyEclipse8
5调试环境:JDK-1
实验内容(实验要求)1
根据用户输入的正规式,使用 Thompson 算法构建 NFA2
利用子集法,从 NFA 构造 DFA3
最小化 DFA4
根据用户输入的字符串,模拟字符串的识别过程四
实验过程及主要的数据结构(一)程序流程图下载后可任意编辑(二)数据结构正规式处理过程正规式存储结构 ArrayList(ArrayList 是实现了基于动态数组的数据结构)正规式元素结构:ExpressionItem;类图如下例:正规式(a|b)*ab 经过处理后的结构如下:NFA 结构正规式“a|b”的邻接表结构5开始用户输入正规式正 规 式 有效
处理正规式(加’
’ ,为 字 符 添 加 优 先级)构造 NFA构造 DFA最小化 DFA用户输入字符串显示识别结果提示错误信息结束true(0falsea-1true|1falseb-1true)4true*3true
2falsea-1true
2falseb-1下载后可任意编辑正规式“a|b”的邻接表结构NFA 结构代码实现public class NFA {private ArrayListcharList;//输入字符集private ArrayList states;//状态集private NFAStateNode startState;//开始状态private ArrayList endStates;//结束状态集/