实验报告语法分析1.docx
- 文档编号:15096076
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:8
- 大小:203.07KB
实验报告语法分析1.docx
《实验报告语法分析1.docx》由会员分享,可在线阅读,更多相关《实验报告语法分析1.docx(8页珍藏版)》请在冰点文库上搜索。
实验报告语法分析1
实验名称:
班级:
10级软件工程2班
班号:
10级软件工程2班
学号:
1025116031
姓名:
张越
2013年04月17日
1、实验目的
1、为初等函数运算语言构造LL
(1)语法分析器。
2、掌握LL
(1)语法分析器的方法,加深对自上而下语法分析原理的理解。
3、掌握设计、编制并调试LL
(1)语法分析程序的思想和方法。
2、实验内容
2.1、根据初等函数运算语言运算法则,将语法模式用上下文无关文法表达。
注意运算的优先性,避免产生二义性文法。
SA?
B;#
SC;A|ε
C变量=B
BB+C|B-C|C
CC*D|C/D|D
DE|sin(E)|cos(E)|tg(E)|ctg(E)|lg(E)|ln(E)|log(E)|log(E,E)|E^E
E(B)|-E|变量|实数
注:
本文法的?
前面是一些赋值语句(如:
a=x+y;)?
后面是一个算术表达式(如a+b*sin(y);以#结束)
2.2、将上述文法改写为LL
(1)文法。
SA?
B;#
AC;A|ε
C变量=B
BDE
E+DE|-DE|ε
DFG
G*FG|/FG|ε
FHI|cos(H)|sin(H)|tg(H)|ctg(H)|lg(H)|ln(H)|log(HJ
I^H|ε
J,H)|)
H(B)|-H|变量|实数
2.3、根据LL
(1)文法给出预测分析表。
2.3.1First集
First(S)={ε变量?
}
First(A)={ε变量}
First(B)={(-变量实数logsincostgctglgln}
First(C)={变量}
First(D)={(-变量实数logsincostgctglgln}
First(E)={ε+-}
First(F)={(-变量实数logsincostgctglgln}
First(G)={ε*/}
First(H)={(-变量实数}
First(I)={ε^}
First(J)={,)}
2.3.2Follow集
Follow(S)={#}
Follow(A)={?
}
Follow(B)={;)}
Follow(C)={;}
Follow(D)={+-;)}
Follow(E)={;)}
Follow(F)={*/+-;)}
Follow(G)={+-;)}
Follow(H)={*/+-;)^,}
Follow(I)={*/+-;)}
Follow(J)={*/+-;)}
2.3.3记号表
非终结符
i
o
s
t
c
l
g
记号
1
2
3
4
5
6
7
意义
变量
cos
sin
tg
ctg
ln
lg
非终结符
a
n
+
-
*
/
^
记号
8
9
10
11
12
13
14
意义
log
实数
+
-
*
/
^
非终结符
=
;
(
)
?
#
记号
15
16
17
18
19
20
21
意义
=
;
(
)
?
结束标志
2.3.4预测分析表
2.4、根据预测分析表,给出解析LL
(1)文法的递归下降子程序。
2.5、本语法分析程序的输入是实验一生成的记号流;本程序需定义语法树的数据结构;语法分析的输出是一棵语法树。
2.6、当输入存在语法错误时,需给出语法错误的提示,指出语法错误发生的位置和错误类型。
3、实验程序清单(包括词法分析部分)
4、调试过程和运行结果
5、程序的主要部分及其功能说明
6、实验收获体会
基本掌握求First和Follow集,懂了构造预测分析表的过程,最后用非递归的预测分析法语法分析,并能得到出错的地方。
在分析时候构造的语法树,及其显示的基本原理在分析时是一致的。
7、改进意见
实验的内容较多,单个人独立完成所有任务,较为吃力,占用的课余时间有点过多。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告 语法分析
![提示](https://static.bingdoc.com/images/bang_tan.gif)