电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

词法分析实验报告

词法分析实验报告_第1页
1/13
词法分析实验报告_第2页
2/13
词法分析实验报告_第3页
3/13
下载后可任意编辑《编译原理》课程实验报告题目 词法分析 专业 华侨大学 09 软件工程 班级 1 班 学号 姓名 日期 2024-4-5 源码下载地址:http://www.gxp.cc/file-1179505.html一. 实验题目词法分析二. 实验环境(操作系统,开发语言)操作系统:Windows 7开发语言:JAVA 语言开发工具:MyEclipse8.5调试环境:JDK-1.7.0三. 实验内容(实验要求)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;//结束状态集/**内部类:存放一个正规式的开始与结束状态*/class StatePair{private NFAStateNode startState;private NFAStateNode endState;StatePair(NFAStateNode start,NFAStateNode end){this.startState=start;this.endState=end;}}}NFA 状态节点结构代码实现510243ab####字符集 charList状态表statesId=0edgeList4终态集 endStates5初态 startStatevalue=anext=1abId=1edgeListId=2edgeListId=3edgeListId=4edgeListId=5edgeListnulllvalue=bnext=3value=#next=5value=#next=0value=#next=5value=#next=2Edge下载后可任意编辑public class NFAStateNode {static int stateNum=0;private int id;private ArrayList> edgeList;public NFAStateNode(){edgeList=new ArrayList>();id=stateNum++;}}NFA 或 DFA 图的边 Edge 结构...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

词法分析实验报告

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部