欢迎来到天天文库
浏览记录
ID:44111532
大小:90.50 KB
页数:5页
时间:2019-10-18
《编译原理实验报告_计算机软件及应用_IT计算机_专业资料》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验名称:实验1.1词法分析姓名:王欣学号:—201490514150_班级:文计指定验收时间:电子文档:提交时间提前/按时/延时/未提格式正确—基本正确—不正确—实验报告:提交时间提前/按时/延时非常好—完整—合格—不合格—验收记录:时间顺序—、原创性声明列出程序中参考的部分及来源-课程提供的范例、网上资源、同学帮助(需要写明参考了谁的源码)、参考书等……全部程序都是自己编写的。二、实验要求用C语言程序对下列正则表达式进行此法分析。abc(ab)*a三、完成情况基本上实现了正则表达式的功能。四、实现方案1.将正
2、则表达式转换成NFA;2.将NFA确定化为DFA;3.将DFA最小化;4.编程。五、创新和亮点设计本程序吋先将正则表达式转换为NFA,然后将NFA转换成DFA,并实现了最小化,所以本程序简单明了,耗时较少,不会出错。六、运行结果给出尽可能完备的测试用例及测试结果(截图)1.能达到状态1,不能到达状态2的情况:・・E:COMPILERDebug语法分祈€・・・1口I回请输入要匹配的字符:aba输入的字符串为:aba匹配失败?.Pressanykeytocontinue川2.能到达状态1和状态2:3・能反复到达状
3、态1和状态2的情况:I・E:COMPILERDebug语法分•・・U回请输入要匹配的字符:abaabababaa输入的字符串为:abaabababaa匹配成功?Pressanykeytocontinue14.不能到达状态1的情况:•E:COMPILERDebug语法分听O.ex....请输入要匹配的字符:caasd输入的字符串为:caasd匹配失败?PressanykeytocontinueHr■・E:COMPILERDebugiBiX...I口I回I—口"I请输入要匹配的字符:1babbaa输入
4、的字符串为:babbaa兀配失败?PressanykeytocontinueQhi亟七、源码参考的模块可以给出函数定义或简短说明自己完成的部分需打印出全部源码源码打印好后,用红色的笔大致标出以下三个部分令范例程序中已有的部分令自己修改增添的部分令网上下载或参考别人的程序片段#include#include#includevoidmatch();voidfail();voidmain(){char*c,t[9999];printf("请输入要匹配的字符:"
5、);gets(t);c=t;printf("输入的字符串为:”,c);puts(c);match(c);}voidmatch(char*c){char*p=c;staticintstatc=O;switch(state)case0:if(*(p++)='a'&&*(p++)==V&&*(p++)=N){state=1;match(p);}elsefail();break;case1:if(*p==lbt){state=1;p++;match(p);}elseif(*p==a,){state=2;p++;matc
6、h(p);)elsefail();break;case2:if(*p==la,){state=2;p++;match(p);}elseif(*p==,b,){state=1;p++;match(p);)elseif(*p==, ,)prindT匹配成功!”);elsefail();bicak;}}voidfail()printf(°匹配失败!J;
此文档下载收益归作者所有