《句法分析实验报告》由会员分享,可在线阅读,更多相关《句法分析实验报告(13页珍藏版)》请在金锄头文库上搜索。
1、编译原理课程实验报告实验2:句法分析姓名云天娇院系软件学院学号1113710311任课教师陈鄞指导教师陈鄞实验地点软件学院三楼机房实验时间2013.11.6实验课表现出勤、表现得分实验报告得分实验总分操作结果得分一、需求分析得分要求:采用至少一种语法分析技术(LL(1)、SLR(1)、LR(1)或LALR(1))对类高级语言中的基本语句(至少包括函数定义、变量说明、赋值、循环、分支等语句)进行语法分析。阐述句法分析系统所要完成的各个功能,并给出如下语言成分的文法描述 函数定义(或过程定义) 变量说明 赋值 表达式 循环 分支句法分析功能简述: 我的程序主要是对第一次实验词法分析之后得到的lis
2、t进行句法分析,首先有一个textArea来接收输入的程序,然后会通过句法分析,在预测分析表中体现出单步执行输出栈中元素,以及每步所用的产生式。程序的辅助功能还有重置程序以及导入文件的功能。算法分析: 主要的算法思想是,通过产生式求出每个终结符与非终结符的first集,然后在求出非终结符的follow集,再通过follow集和first集求出每个产生式的select集。然后再分析所接收到的字符,通过接收的字符,去select集中找到匹配的产生式,然后通过一系列对栈的操作,写出预测分析表。文法产生式:二、概要设计得分要求:给出系统概要设计,以及必要的系统宏观层面设计图,如系统框架图、数据流图、功
3、能模块结构图等以及相应的文字说明。系统框架图:功能模块结构图:三、详细设计及实现得分要求:对如下工作进行展开描述l 核心数据结构的设计l 主要功能函数说明l 程序核心部分的程序流程图l 核心数据结构设计核心数据结构是把实验一词法分析的结果存到一个list里,然后对自己所写的产生式中的每一个符号求first集,follow集和select集,然后编写一个函数来读入你所输入的符号,根据select集找到相应的产生式,然后逐步替换,最后将分析的结果输出来。l 主要功能函数说明public void analysis():将所有的产生式添加到list里public void getFirst():求每一个符号的first集public void getFollow():