文档库 最新最全的文档下载
当前位置:文档库 › 聊城大学编译原理实验二语法分析器

聊城大学编译原理实验二语法分析器

聊城大学编译原理实验二语法分析器
聊城大学编译原理实验二语法分析器

LIAOCHENG UNIVERSITY

计算机学院实验报告

【2016 ~2017学年第2学期】

【一、基本信息】

【实验课程】编译原理

【设课形式】独立□非独立√【课程学分】 4

【实验项目】实验二语法分析器的设计

【项目类型】基础□综合√设计□研究创新□其它[ ] 【项目学时】 4 【学生姓名】【学号】

【系别专业】软件开发

【实验班组】级班组台

【同组学生】

【实验室名】综合实验楼

【实验日期】【报告日期】

【二、实验教师对报告的最终评价及处理意见】

实验成绩:(涂改无效)

指导教师签名:年月日注:要将实验项目、实验课程的成绩评定及课程考核办法明确告知学生,并报实验管理中心备案

实验内容和原理或涉及的知识点(综合性实验):

1. 输入任意文法,改写文法使其成为LL(1)文法。

2. 构造文法的预测分析表;

3. 设计堆栈和预测分析表的机内表示;

4. 设计并书写语法分析程序;

5. 调试并运行语法分析程序;

6. 实验结果分析

●分析程序中文法存储所采用的数据结构

●分析结果并写出自己的心得体会

提示:

对于所选定的分析方法,如有需要,应选择一种合适的数据结构,以构造所给文法的机内表示。

T→FW’| ε

W’→MFW’| ε

F→( E ) | i

M→* | /

2. 构造文法的预测分析表;

i + - + / ( ) #

E E->TE E->TE’

E’E’->ATE’E’->ATE’E’->?E’->?T T->FT’T->FT’

T’T’->?T’->?T’->MFT’T’->MFT’T’->?T’->?

F F->i F->(E)

A A->+ A->

M M->* M->/

3.设计堆栈和预测分析表的机内表示;

堆栈表示:

预测分析表的机内表示:

4. 设计并书写语法分析程序;

语法分析程序代码:

#include

#include

#include

#include

char A[20];

char B[20];

char v1[20]={'i','+','*','(',')','#'};

char v2[20]={'E','G','T','S','F'};

}

else

{ print();

print1();

printf("%c出错\n",x);

exit(1);

}

}

}while(finish==0);

}

5.调试并运行语法分析程序;

运行结果:输入i+(i*i)#运行结果如图一

输入(i+i)*i#运行结果如图二

记录成绩(涂改无效)合格□不合格□

【五、实验结果分析】

6. 实验结果分析

通过本次实验加深对预测分析LL(1)分析法的理解,能撑握编写LL(1)分析程序对任意输入的符号串进行分析。

相关文档