句法分析实验报告

句法分析实验报告

ID:19566520

大小:2.72 MB

页数:13页

时间:2018-10-03

句法分析实验报告_第1页
句法分析实验报告_第2页
句法分析实验报告_第3页
句法分析实验报告_第4页
句法分析实验报告_第5页
资源描述:

《句法分析实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、编译原理课程实验报告实验2:句法分析姓名云天娇院系软件学院学号1113710311任课教师陈鄞指导教师陈鄞实验地点软件学院三楼机房实验时间2013.11.6实验课表现出勤、表现得分实验报告得分实验总分操作结果得分一、需求分析得分要求:采用至少一种语法分析技术(LL(1)、SLR(1)、LR(1)或LALR(1))对类高级语言中的基本语句(至少包括函数定义、变量说明、赋值、循环、分支等语句)进行语法分析。阐述句法分析系统所要完成的各个功能,并给出如下语言成分的文法描述·函数定义(或过程定义)·变量说明·赋值·表达式·循环·分支句法分析功能简述:我的程序主要是对第一次实验词法分析之

2、后得到的list进行句法分析,首先有一个textArea来接收输入的程序,然后会通过句法分析,在预测分析表中体现出单步执行输出栈中元素,以及每步所用的产生式。程序的辅助功能还有重置程序以及导入文件的功能。算法分析:主要的算法思想是,通过产生式求出每个终结符与非终结符的first集,然后在求出非终结符的follow集,再通过follow集和first集求出每个产生式的select集。然后再分析所接收到的字符,通过接收的字符,去select集中找到匹配的产生式,然后通过一系列对栈的操作,写出预测分析表。文法产生式:二、概要设计得分要求:给出系统概要设计,以及必要的系统宏观层面设计图

3、,如系统框架图、数据流图、功能模块结构图等以及相应的文字说明。系统框架图:功能模块结构图:三、详细设计及实现得分要求:对如下工作进行展开描述l核心数据结构的设计l主要功能函数说明l程序核心部分的程序流程图l核心数据结构设计核心数据结构是把实验一词法分析的结果存到一个list里,然后对自己所写的产生式中的每一个符号求first集,follow集和select集,然后编写一个函数来读入你所输入的符号,根据select集找到相应的产生式,然后逐步替换,最后将分析的结果输出来。l主要功能函数说明publicvoidanalysis():将所有的产生式添加到list里publicvoid

4、getFirst():求每一个符号的first集publicvoidgetFollow():publicvoidgetSelect():求每一个产生式的select集publicSymbolfindSymbol(Stringstr):判断符号表中是否有这个符号publicListAnalysisTable(Listt):对栈的操作,如何判断所需产生式publicbooleanisReadNull(Stringstr):判断符号是否可多步推导为空l程序核心部分的程序流程图First集算法流程图:Follow集算法流程图:Select集算法流

5、程图:返回所需产生式流程图:四、实验结果及分析得分要求:对实验结果进行描述和分析,基本内容包括:(1)输出该语法分析器的语法分析表(2)针对一测试程序输出其语法分析结果;(3)输出针对此测试程序对应的语法错误报告;(4)对实验结果进行分析。注:其中的测试样例需先用已编写的词法分析程序进行处理。l主界面l分析结果l测试程序intmain(inta,intb){a=0;b=5;if(a

6、在产生式中该符号只能接受一个终结符,结果接受完之后又来了一个终结符总结:单击句法分析后,下方的表格中左侧是程序的推导过程,对应右侧推导时所需的产生式,注意:表格不是固定分好的,可以拉伸来控制左右侧区域的分配。方法是将鼠标放到表头中间的竖线上即可通过拖拉来看表格中的内容。如果程序有错误,报错的地方会在所需产生式那侧标出红色,并会在产生式后面标注错误原因。指导教师评语:日期:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。