编译原理实验(词法分析,LL(1),LR(0))

编译原理实验(词法分析,LL(1),LR(0))

执念博客
2017-06-25 / 0 评论 / 113 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年05月05日,已超过1059天没有更新,若内容或图片失效,请留言反馈。
广告

点击广告查看隐藏内容....

词法分析实验

实验要求

实现算符优先分析法需要:

(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

打赏

海报

正在生成.....

评论 (0)

语录
取消