版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计(论文)任命书软件实验室软件测试专业4类一、课程设计(论文)标题firstvt集和lastvt集生成算法仿真第二,课程设计(论文)工作从2014年6月16日到2014年6月21日。三、课程设计(论文)场所:软件研究所实际培训四、课程设计(论文)内容要求:1.本课程设计的目的进一步发展学生编译器设计的思路,加深对编译原理和应用的理解,并用于编辑。通过对翻译过程中的重点和难点内容进行编程,独立完成具有一定工作量的编程任务。强调良好的编程风格,综合使用编程语言、数据结构和编译原理的知识来掌握开发工具vc /java/c#/。使用net。2.课程设计挑战和要求1)课程设计挑战:设计在正则语法中
2、生成firstvt集和lastvt集的算法的动态模拟。(请参阅算法教材)动态模拟算法的基本功能包括:(1)输入语法g。(2)语法g输出构成firstvt集的算法。(3) firstvt集输出;(4)语法g输出构成lastvt集的算法。(5)输出lastvt集。2)创新要求:以界面形式显示这一结果集,看起来更加帅气。3)课程设计论文准备要求(1)课程设计任务和要求(2)设计理念-工作原理、功能规划(3)详细设计-数据分析、算法思想、功能实现(包括程序流程图、主要代码和参考)解释)、界面等。(4)运行调试和分析讨论-提供运行屏幕截图、分析运行结果、改进思路等。(5)设计经验和摘要-设计中遇到的问题
3、和解决方案,以及通过设计获得的新知识,什么样的知识,做了什么样的改进。(六)报告按规定排版印刷,要求装订平整,否则要求返工;(7)教学报告的绑定顺序如下:封面-任务书-中文摘要-目录-正文-附录(代码和相关图片)(八)严禁剽窃。如果发现,就不合格处理。4)课程设计分数标准:(1)学习态度:20分;(2)系统设计:20点;(3)编程调试:20点;(4)回答问题:20分;(5)论文写作:20分。5)参考资料:(1)张素琴,吕英智。编译原理m。清华大学出版社(韩国)(2)张丽媛、姜晨等,编写原理(第二版)m,西安:西北工业大学出版社6)课程设计日程1.准备阶段(4小时):选择设计主题,了解设计目的要
4、求,并查看相关材料2.程序模块设计分析阶段(4小时):完整程序设计、详细设计3.代码编写调试阶段(8小时):编写、调试、测试程序模块代码4.论文写作阶段(4小时):课程设计任务和设计内容摘要,课程设计论文写作学生签名:2014年6月21日课程设计(论文)评审意见(1)学习态度(20分):优秀()、良好()、中等()、一般()、差异();(2)系统设计(20点):优秀()、良好()、中等()、一般()、差异();(3)编程调试(20点):优秀()、良好()、中等()、普通()、差异();(4)回答问题(20分):优秀()、良好()、中间()、一般()、差异();(5)论文写作(20分):优秀()
5、、良好()、中等()、一般()、差异();审阅者:职称:副教授2014年6月26日目录引言4正文4设计实施10分析测试数据运行结果12课程设计摘要13参考文献14引言随着计算机科学的快速发展,对形式语言和机器人的理论和方法的研究也越来越受到关注,但电子已经成为计算机科学的理论基础。该过程主要研究机器人在编译时的应用,着重分析运算符优先,并用该理论判断算术表达式的正确性。根据运算符优先分析算法,编写具有编程语法小生程序可以应用于各种语法和各种输入单词字符串的共性的语法程序。基本思想说明,语法分析之前先对输入的语法和句子进行词汇分析,消除过多的自满情绪,通过将生成和终止符、终止符填充关联数组,为语
6、法分析做好事前准备。运算符优先分析算法的核心算法教科书中列出了,要做的就是把它变成实现。正文设计目的名为“firstvt集和lastvt集生成算法模拟”的过程是运算符优先分析算法判断三个优先关系的关键因素。运算符优先分析算法是自上而下分析方法之一。3协议分析,也称为自下而上分析,该协议大体上从左到右扫描输入符号字符串,将输入符号移动到后堆栈,移动到边缘分析,然后堆栈顶部符号字符串形成句子模式的句柄或可规定字符串时,使用结果生成的左非终结器,而不是相应的右语法符号字符串。如果反复这个过程,直到协议在栈中只剩下语法的开始符号,分析就会成功,确认输入字符串是语法的句子。运算符优先分析算法的基本思想是
7、简单地规定运算符之间的优先关系。也就是说,仅考虑终结器之间的优先级。本课程设计的要求是只配置firstvt集和lastvt集,以扩展构造函数优先级表。问题说明设计指定的语法及其firstvt和lastvt集,根据语法和firstvt和lastvt创建优先分析表。您可以输入给定的语法和一组firstvt和lastvt,动态模拟算法的基本功能。本主题的语法ge为测试数据:语法ge:e-tee- te|t-ft t-*ft|f-(e)|i此语法包括相应的firstvt(e)=,*,(,i lastvt(e)=,*,ifirstvt(e)= lastvt(e)=,*,ifirstvt(t)= *,(,
8、i lastvt(t)= *,ifirstvt(t)= * lastvt(t)= *,ifirst vt (f)=(,i last vt (f)=),i通过运算符优先级关系表配置算法:在给定语法中,两个终结器对(a,b)之间的优先级关系按以下三种优先级关系计算:=关系:除了以下形式的创建外,还可以直接查看创建的右侧部分:a .ab.或a .abb.是a=b。关系:找到每个firstvt(b)而不是终结器b,并观察以下形式的创建:a .ab.对于每个b-first vt(b),a 关系:计算每个lastvt(b)(而不是终结器b),观察以下形状的创建:a .bb.对于每个a-last vt(b)
9、,设置a b。这样,对于给定的语法及其firstvt和lastvt集,两个终结器之间的优先级关系表创建算法就可以获得表创建过程和运算符优先级分析表创建算法。因此,重点讨论了优先级分析表生成算法,解决了这个问题,得到了所需的结果、算法优先级分析表和分析过程。其中,firstvt集和lastvt集的表达也可以用关系图表示。整体设计运算符优先分析表的构造原理:通过检查语法g中基于每个结果的候选,可以首先找到满足a=b的终结器对。要找到满足关系的所有终结器对,首先为语法g中的每个非终结器p配置两组:firstvt(p)和lastvt(p)。1.配置firstvt集first vt (p)=a | p=
10、a.或p=qa.a/vt和q/vnp a.或p qa.a/first vt (p)(如果有);有afirst vt(q),生成p q.如果存在,则为a-first vt(p)。2.lastvt集的配置last vt (p)=a | p=.a或p=.aq、a/vt和q/vn如果生成了表单:如果u a或u av,则为alast vt(u);具有a/last vt (v)并生成的u .如果有v,则为a/last vt (u)。有了这两组,可以检查每个结果候选项,以确定满足关系的“”的所有终结器对。-ap.b/first vt (p),a b。3.建立者优先顺序关系表格组态如果具有除终结器p以外的所有
11、firstvt(p)和lastvt(p)集合,则可以配置语法g的优先级表。详细设计首先介绍运算符优先语法的几个重要特性。性质1:在运算子方法中,包含两个相邻非终止符的句子样式。如果特性2: aa(或ba)出现在运算符语法的语句模式s中,并且a是非终结器而b是终结器,则s中包含此b的所有语句都必须包含a。1.firstvt集配置,算法说明生成的a-a .或a-ba.如果存在,则a属于firstvt(a)。其中a、b是非终结器,a是终结器。 a属于firstvt(b),如果有生成a-b,则a属于firstvt(a)。为了便于计算,创建了布尔数组fm,n(m是未终止的字符数,n是已终止的字符数)和后
12、缀堆栈。排序所有非终结器,将非终结器a的序列号标记为ia,然后排序所有终结器,将终结器a的序列号标记为ia。此算法的目的是使数组中的一个元素最终满足值。仅当fia,ja的值为true且a属于firstvt(a)时才适用。因此,所有firstvt集(不是终结器)都是完全确定的。步骤如下:首先,规则将初始值附加到每个数组元素。观察这些初始值并且fia,ia值为真时,(a,a)将推送到堆栈上,直到处理了所有数组的初始值。然后对堆栈执行以下操作:弹出堆栈中最上面的项目时,结果为true(a,a),堆栈将重复,直到清空堆栈。表达式语法为:(0) e# e #(1) ee t(2) et(3) tt*f(
13、4) tf(5) f p f | p(6) p(e)(7) pi计算每个firstvt集和lastvt集(不是终结器)将产生以下结果:firstvt(e)=#firstvt(e)=,*,-,(,ifirstvt(t)=*,(,ifirstvt(f)=-,(,ifirstvt(p)=(,i2.lastvt集的配置,算法说明:用于构建输入语法的lastvt集规则u 33363603360=.a或u 33363603360=.如果有av,则a属于lastvt(u)规则u 33363603360=.如果有v,并且a属于lastvt(v),则a属于lastvt(u)堆栈和布尔阵列b设置procedure
14、insert(u,a)if not bu,a thenbeginb u,a33363603360=true;推广stack堆栈(u,a;end;beginfor每个终结器符号u和终结器a dobu,a:=false;for u 33363603360=.a或u 33363603360=.每个规则do,例如avinsert(u,a);while stack堆栈不为空dobegin从堆栈中取出堆栈的顶部,然后记录为(v,a)。u 33363603360=.没有v等栏的普通doinsert(u,a);end of whileend具体算法如下:beginfor每个终止元p和终止元a do fp,a=false;for每个p-a或p-.创建aq,do insert (p,a)while stack非空dobegin把stack的顶部记为(q,a)。p-.生成每个条形,如qinsert(p,a)end of while;end对于上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商品房购买合同协议书
- 木雕购买纪念品合同模板
- 购买电机铸件合同模板
- 购买瓜果种子合同模板
- 购买虚拟账号签订合同
- 二手消防船购买合同模板
- 购买租赁飞机合同范本
- 水泥蹭车购买合同范本
- 二手彩钢板购买合同范本
- 调料原材料购买合同书
- 2026年马鞍山市含山县社区工作者招聘8名笔试参考题库及答案解析
- AI在集成电路中的应用
- 解读2026年新修订《国有企业领导人员廉洁从业规定》全文
- 2025年海南初二地理生物会考真题试卷(含答案)
- 2026年湖南湘西事业单位考试公共基础知识真题及参考答案(一)
- 心血管筛查项目培训课件
- 天津2025年中新天津生态城教育系统专任教师招聘120人笔试历年参考题库附带答案详解
- 2026年重庆市初中学业水平考试数学模拟试卷(含答案详解)
- 安全生产工作总体和年度目标
- 2025年供应链《供应链管理》专项训练考试卷及答案
- 2025年重庆市奉节县社区专职工作者公开招聘考试试卷
评论
0/150
提交评论