点击广告查看隐藏内容....
词法分析实验
实验要求
实现算符优先分析法需要:
(1)判别文法是否为OG文法。
(2)判别文法是否为OPG文法。首先需要计算FIRSTVT集、LASTVT集,并根据优先关系构造算符优先矩阵,然后判别是否是OPG文法。
(3)进行句子分析。依据分析表判断出某句子是否为给定文法的句子。
为了降低实现的难度,本实验只要求实现步骤(3)的部分,即手动实现步骤(1)和(2),然后依据步骤(2)建立的分析表编写一个总控程序,实现句子的分析。
程序应满足下列要求:
- 输入一个算符优先关系表,则输出算符优先归约的步骤。要求从输入文件(txt)和键盘中输入算符优先分析表,把结果输出到结果文件(result.txt)和显示器。
输出格式,如:
步骤 符号栈 优先关系 输入串 移进或归约
0 # < i+i# 移进
1 #i > +i 归约
… ……… ………… …………
2、程序应能判断出某句子是否为该文法的句子。
3、准备多组测试数据存放于input.txt文件中,测试数据中应覆盖是文法的句子和不是文法的句子两种情况,测试结果要求以原数据与结果对照的形式输出并保存在result.txt中,同时要把结果输出到屏幕。
实验代码下载链接:
http://pan.baidu.com/s/1kV7iNdH 密码:o853
LL(1)实验
实验要求
实现LL(1)预测分析法需要:
(1)判别文法是否为LL(1)文法。为此需要依次计算FIRST集、FOLLOW集和SELLECT集,根据SELLECT集可判断文法否为LL(1)文法。
(2)构造出分析表。根据SELLECT集和文法产生式构造出LL(1)分析表。
(3)进行句子分析。依据分析表判断出某句子是否为给定文法的句子。
为了降低实现的难度,本实验只要求实现步骤(3)的部分,即手动实现步骤(1)和(2),然后依据步骤(2)建立的分析表编写一个总控程序,实现的句子的分析。
程序应满足下列要求:
- 输入一个分析表,则输出预测分析的步骤。要求从输入文件(txt)和键盘中输入预测分析表,把结果输出到结果文件(result.txt)和显示器。
输出格式,如:
步骤 符号栈 输入串 所用产生式
0 #E i1*i2+i3#
1 #ET i1*i2+i3# T-->FT
… ……… ………… …………
2、程序应能判断出某句子是否为该文法的句子。
3、准备多组测试数据存放于input.txt文件中,测试数据中应覆盖是文法的句子和不是文法的句子两种情况,测试结果要求以原数据与结果对照的形式输出并保存在result.txt中,同时要把结果输出到屏幕。
实验代码下载链接:
http://pan.baidu.com/s/1jIsXIdg 密码:l0o3
LR(0)实验
实验要求
实现算符优先分析法需要:
(1)录入LR(0)文法。
(2)构造并输出LR(0)分析表。
(3)对输入的符号串进行句子分析。依据分析表判断出某句子是否为给定文法的句子。
为了降低实现的难度,本实验只要求实现步骤(3)的部分,即手动实现步骤(1)和(2),然后依据步骤(2)建立的分析表编写一个总控程序,实现句子的分析。
程序应满足下列要求:
- 输入一个LR(0)分析表,则输出LR(0)分析句子的步骤。要求从输入文件(txt)和键盘中输入LR(0)分析表,把结果输出到结果文件(result.txt)和显示器。
输出格式,如:
步骤 状态栈 符号栈 输入串 ACTION GOTO
(1) 0 # i+i# S2
(2) 02 #i +i# r4 5
… ……… ………… …………
2、程序应能判断出某句子是否为该文法的句子。
3、准备多组测试数据存放于input.txt文件中,测试数据中应覆盖是文法的句子和不是文法的句子两种情况,测试结果要求以原数据与结果对照的形式输出并保存在result.txt中,同时要把结果输出到屏幕。
实验代码下载链接:
http://pan.baidu.com/s/1boWRtsb 密码:pwmy
本文共 984 个字数,平均阅读时长 ≈ 3分钟
点击广告查看隐藏内容....
评论 (0)