还剩5页未读,继续阅读
文本内容:
编译原理实验指导书实验语法分析2实验目的巩固对语法分析的基本功能和原理的认识
1.通过对语法分析表的自动生成加深语法分析表的认识
2.理解并处理语法分析中的异常和错误
3.实验内容在词法分析器的基础上设计实现类高级语言的语法分析器,基本功能如下()1能识别以下几类语句>声明语句(包括变量声明、数组声明、记录声明和过程声明)>表达式及赋值语句(包括数组元素的引用和赋值)>分支语句if_then_else>循环语句do_while>过程调用语句()如果语法分析器采用的是自顶向下的分析技术,要求编写程序自动计算2集和集,并自动生成预测分析表如果采用的是自底向上的分析FIRST FOLLOW技术,要求编写自动计算()和函数的程序,并自动生成CLOSURE IGOTO LR分析表()具备语法错误处理能力,能准确给出错误所在位置,并采用可行的错误3恢复策略输出的错误提示信息格式如下[行号]:[说明文字]Error atLine()系统的输入形式要求可以通过文件导入文法和测试用例,可以通过用4户界面显示并编辑测试用例测试用例要涵盖“实验内容”第()条中列出的各1种类型的语句,并设置一些语法错误()系统的输出分为两部分一部分是打印输出语法分析器的集、5FIRST集和()分析表(或分析表)另一部分是打印输出语法分析FOLLOW LL1LR结果,格式如下将构造好的语法分析树按照先序遍历的方式打印每一个结点的信息,这些信息包括结点的名称以及结点对应的成分在输入文件中的行号(行号被括号所包围,并且与结点名称之间有一个空格)所谓某个成分在输入文件中的行号是指该成分产生的所有词素中的第一个在输入文件中出现的行号对于叶结点,如果其的属性值不为空,则将其属性值也打印出来属性值与结点名称token之间以一个冒号和空格隔开每一个结点独占一行,而每个子结点的信息相对于其父结点的信息来说,在行首都要求缩进个空格具体输出格式参见下例(该2例输入1proc inc;2int i;3i=i+1;输出PlDlproc1id:inc1;DD2T2X2integer2id:i2;2S3id:i3=GE3E3id:I3+3E3digit:13;3除此之外,可以实现一些额外功能,如输出分析结果的树状图实验要求可以自己定义文法,也可以参考教材中给出的文法参见本指导书附1录要求实验之前完成实验报告中的预习部分即需求分析、文法设计和2系统设计三个板块未按时完成预习报告者将扣除相应分数()要求当堂完成实验内容,并进行现场验收未当堂完成验收者将扣除相3应分数()要求实验结束后一周内提交实验报告及源程序未按时提交者将影响成4绩评定实验评分标准
一、课堂表现(分)10出勤情况(迟到,早退,缺席)
1.是否遵守课堂纪律
2.
二、操作表现(分)50当堂按时完成(分)
1.10功能齐全,结果正确无误(分)
2.
30.界面美观、人性化,具有良好演示效果(分)310
三、实验报告(分)40需求分析(分)
1.10设计(分)
2.20系统实现及结果分析(分)
3.10附录参考文法〃参见教材PfD p229〃参见教材PfS p241〃参见教材S fSS p241/*声明*/D—D D|proc id;D S|T id;〃参见讲义第章7T fX C|record D〃参见教材p227X finteger|real Cf[num]C|£〃参见教材p227〃参见教材p227/*赋值语句*/〃参见教材S fid=E L=E;p234〃参见教材E fE+E|E*E|—E|E|id|digit|L p234L fid[E]|L[E]〃参见教材p234/*控制流语句*/〃参见教材S fif B then SI p241ifBthenS1else S2〃参见教材p241while Bdo SI〃参见教材p241B fB orB〃参见教材p243B andB〃参见教材p243not B〃参见教材p243B〃参见教材p243E relopE〃参见教材p243true〃参见教材p243false〃参见教材p243relop—|=|==|!=||=〃参见教材p240〃参见讲义第章/*过程调用*/6〃参见讲义第章6S fcall idElist〃参见讲义第章6Elist TElist,E ElistfE。
个人认证
优秀文档
获得点赞 0