语法分析上机实习题_语法分析部分上机
语法分析上机实习题由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“语法分析部分上机”。
注:
(一)为必做题,(二)和
(三)任选一题。
语法分析上机实习题
(一)对于如下的文法,试编写调试一个语法分析程序:
E → E+T | T
T → T*F | F
F → P^F| P
P→(E)| i
要求和提示:
(1)可选择一种你感兴趣的语法分析方法(LL(1)、算符优先、递归下降、SLR(1)等)作为编制语法分析程序的依据。
(2)对于所选定的分析方法,如有需要,应选择一种合适的数据结构,以构造
所给文法的机内表示。
(3)能进行分析过程模拟。如输入一个句子,能输出与句子对应的语法树,能
对语法树生成过程进行模拟;能够输出分析过程每一步符号栈的变化情况。
(二)First集和Follow集生成算法模拟
【问题描述】
设计一个由给定文法生成First集和Follow集并进行简化的算法动态模拟。(算法参见教材)
【基本要求】
动态模拟算法的基本功能是:
(1)输入一个文法G;
(2)输出由文法G构造FIRST集的算法;
(3)输出First集;
(4)输出由文法G构造FOLLOW集的算法;
(5)输出FOLLOW集。
E的first集
T的first集
F的first集+1*()i 1 11 1 1 1
【测试数据】
输入文法:
E->TE’
E’->+TE’|ε
T->FT’
T’->*FT’|ε F->(E)|i
(三)FirstVT
集和LastVT集生成算法模拟
【问题描述】
设计一个由给定文法生成FirstVT集和LastVT集的算法动态模拟。(算法参见教材P90——92FirstVT和LastVT的构造算法)
【基本要求】
动态模拟算法的基本功能是:(1)输入一个文法G;
(2)输出由文法G构造FIRSTVT集的算法;(3)输出FirstVT集;
E的firstVTT的firstVTF的firstVT
(4)输出由文法G构造LastVT集的算法;(5)输出LastVT集。
+1
*
()
i 1 1 11
1【测试数据】
输入文法: E->TE’
E’->+TE’|ε T->FT’
T’->*FT’|ε F->(E)|i
实习报告内容:
实验目的、实验要求、实验内容、采用的数据结构、算法描述、运行结果、调试情况、设计技巧及体会、源程序清单。
实验报告封面:
题目:
《编译原理》实验报告
学生姓名:_____________________________ 班级:_____________________________ 学号:_____________________________ 指导教师:_____________________________ 成绩:_____________________________
西安邮电大学计算机学院
年月日