《编译原理》
研究性学习专题 2_递归下降语法分析设计原理与实现实验报告
学 院:
|
计算机与信息技术学院
|
专 业:
|
计算机科学与技术
|
班 级:
|
计科
|
姓 名:
|
|
学 号:
|
|
2023年 1月
目录
一、 理论传授
二、 目标任务
三、 任务分析
四、 实验原理分析
五、 程序功能描述
六、 程序结构描述
七、 实验结果及测试
一、 理论传授
语法分析的设计方法和实现原理;LL(1)文法及其判定;无回朔的递归下降分析的设计与实现;
二、 目标任务
[实验项目]完成以下描述赋值语句的 LL(1)文法的递归下降分析程序
G[S]: S→V=E
E→TE′
E′→ATE′|ε
T→FT′
T′→MFT′|ε
F→ (E)|i
A→+|-
M→*|/
V→i
[设计说明]
终结符号 i 为用户定义的简单变量,即标识符的定义。
[设计要求]
(1)输入串应是词法分析的输出二元式序列,即某算术表达式“专题 1”的输出结果,输出为输入串是否为该文法定义的算术表达式的判断结果;
(2)递归下降分析程序应能发现简单的语法错误;
(3)设计两个测试用例(尽可能完备,正确和出错),并给出测试结果;
(4)选做:如有可能,考虑如何用文法描述 C 语言的 if 语句,使整个文法仍
然为 LL(1)文法,并使得你的递归下降程序可以分析赋值语句和 if 语句。