全球旧事资料 分类
法必须先转化为LL(1)文法再来做递归下降分析?2、如果用预测分析法来改写本程序,如何来实现?
实验5
一、实验目的
语法分析程序的设计(2)
11
f通过设计、编制、调试一个典型的语法分析程序,实现对词法分析程序所提供的单词序列进行语法检查和结构分析,进一步掌握常用的语法分析中算法优先分析方法。
二、实验内容
设计一个文法的算法优先分析程序,判断特定表达式的正确性。
三、实验要求
1、给出文法如下:GEETETTFTFFiE可以构造算符优先表如下:i2、计算机中表示上述优先关系,优先关系的机内存放方式有两种1)直接存放,2)为优先关系建立优先函数,这里由学生自己选择一种方式;3、给出算符优先分析算法如下:k1Sk‘’REPEAT把下一个输入符号读进a中;IFSk∈VTTHENjkELSEjk1WHILESjaDOBEGINREPEATQSjIFSj1∈VTTHENjj1ELSEjj2UNTILSjQ把Sj1…Sk归约为某个N;kj1SkNENDOFWHILEIFSjaORSjaTHENBEGINkk1Skai
12
fENDELSEERRORUNTILa‘’4、根据给出算法,利用适当的数据结构实现算符优先分析程序;5、利用算符优先分析程序完成下列功能:1)手工将测试的表达式写入文本文件,每个表达式写一行,用“;”表示结束;2)读入文本文件中的表达式;3)调用实验2中的词法分析程序搜索单词;4)把单词送入算法优先分析程序,判断表达式是否正确(是否是给出文法的语言),若错误,应给出错误信息;5)完成上述功能,有余力的同学可以对正确的表达式计算出结果。
四、实验环境
PC微机DOS操作系统或Wi
dows操作系统TurboC程序集成环境或VisualC程序集成环境
五、实验步骤
1、分析文法中终结符号的优先关系;2、存放优先关系或构造优先函数;3、利用算符优先分析的算法编写分析程序;4、写测试程序,包括表达式的读入和结果的输出;5、程序运行效果,测试数据可以参考下列给出的数据。
六、测试数据
输入数据:编辑一个文本文文件expressio
txt,在文件中输入如下内容:
1012123567123412345abcdab3de451正确结果:(1)10输出:正确(2)12输出:正确
13
f(3)123567输出:正确(4)1234输出:错误(5)12345输出:错误(6)abcd输出:正确(7)ab3de451输出:错误
七、实验报告要求
实验报告应包括以下几个部分:6、给定文法优先关系和存放方式;7、算符优先分析程序的算法和结构;8、程序运行流程;9、程序的测试结果和问题;10、r
好听全球资料 返回顶部