欢迎来到天天文库
浏览记录
ID:55742547
大小:74.50 KB
页数:5页
时间:2020-06-04
《编译原理编译原理实验指导书-语法分析.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、编译原理实验指导书实验2语法分析实验目的1.巩固对语法分析的基本功能和原理的认识。2.通过对语法分析表的自动生成加深语法分析表的认识。3.理解并处理语法分析中的异常和错误。实验内容在词法分析器的基础上设计实现类高级语言的语法分析器,基本功能如下:(1)能识别以下几类语句:Ø声明语句(包括变量声明、数组声明、记录声明和过程声明)Ø表达式及赋值语句(包括数组元素的引用和赋值)Ø分支语句:if_then_elseØ循环语句:do_whileØ过程调用语句(2)如果语法分析器采用的是自顶向下的分析技术,要求编写程序自动计算FIRST集和FOLLOW集,并自动生成预测分析表。如
2、果采用的是自底向上的分析技术,要求编写自动计算CLOSURE(I)和GOTO函数的程序,并自动生成LR分析表。(3)具备语法错误处理能力,能准确给出错误所在位置,并采用可行的错误恢复策略。输出的错误提示信息格式如下:ErroratLine[行号]:[说明文字](4)系统的输入形式:要求可以通过文件导入文法和测试用例,可以通过用户界面显示并编辑测试用例。测试用例要涵盖“实验内容”第(1)条中列出的各种类型的语句,并设置一些语法错误。(5)系统的输出分为两部分:一部分是打印输出语法分析器的FIRST集、FOLLOW集和LL(1)分析表(或LR分析表)。另一部分是打印输出语
3、法分析结果,格式如下:将构造好的语法分析树按照先序遍历的方式打印每一个结点的信息,这些信息包括结点的名称以及结点对应的成分在输入文件中的行号(行号被括号所包围,并且与结点名称之间有一个空格)。所谓某个成分在输入文件中的行号是指该成分产生的所有词素中的第一个在输入文件中出现的行号。对于叶结点,如果其token的属性值不为空,则将其属性值也打印出来。属性值与结点名称之间以一个冒号和空格隔开。每一个结点独占一行,而每个子结点的信息相对于其父结点的信息来说,在行首都要求缩进2个空格。具体输出格式参见下例(该例输入:1procinc;2inti;3i=i+1;输出:P(1)D(
4、1)proc(1)id:inc(1);(1)D(2)T(2)X(2)integer(2)id:i(2);(2)S(3)id:i(3)=(3)E(3)E(3)id:I(3)+(3)E(3)digit:1(3);(3)除此之外,可以实现一些额外功能,如输出分析结果的树状图。实验要求(1)可以自己定义文法,也可以参考教材中给出的文法(参见本指导书附录)(2)要求实验之前完成实验报告中的预习部分(即需求分析、文法设计和系统设计三个板块)。未按时完成预习报告者将扣除相应分数。(3)要求当堂完成实验内容,并进行现场验收。未当堂完成验收者将扣除相应分数。(4)要求实验结束后一周内提
5、交实验报告及源程序。未按时提交者将影响成绩评定。实验评分标准一、课堂表现(10分)1.出勤情况(迟到,早退,缺席)2.是否遵守课堂纪律二、操作表现(50分)1.当堂按时完成(10分)2.功能齐全,结果正确无误(30分)3.界面美观、人性化,具有良好演示效果(10分)三、实验报告(40分)1.需求分析(10分)2.设计(20分)3.系统实现及结果分析(10分)附录:参考文法P®D//参见教材p229P®S//参见教材p241S®SS//参见教材p241/*声明*/D®DD
6、procid;DS
7、Tid;//参见讲义第7章T→XC
8、recordD//参见教材p227X→in
9、teger
10、real//参见教材p227C→[num]C
11、ε//参见教材p227/*赋值语句*/S®id=E;
12、L=E;//参见教材p234E®E+E
13、E*E
14、-E
15、(E)
16、id
17、digit
18、L//参见教材p234L®id[E]
19、L[E]//参见教材p234/*控制流语句*/S®ifBthenS1//参见教材p241
20、ifBthenS1elseS2//参见教材p241
21、whileBdoS1//参见教材p241B→BorB//参见教材p243
22、BandB//参见教材p243
23、notB//参见教材p243
24、(B)//参见教材p243
25、ErelopE//参见教材p243
26、t
27、rue//参见教材p243
28、false//参见教材p243relop→<
29、<=
30、==
31、!=
32、>
33、>=//参见教材p240/*过程调用*/S®callid(Elist)//参见讲义第6章Elist®Elist,E//参见讲义第6章Elist®E//参见讲义第6章
此文档下载收益归作者所有