【20200423】编译原理课程课业打卡十八之构造文法算符优先关系表&求解输入串算符归约过程
叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧!
一、课业打卡十八之构造文法算符优先关系表&求解输入串算符归约过程
问题描述:
已知文法为:
A->A;D|D
D->D(.E)|F
F->a|(A)
E->E+A|A
(1)构造文法的算符优先关系表。
(2)给出输入串(a+a)# 的算符规约过程。
(1)构造文法的算符优先关系表。
(2)给出输入串(a+a)# 的算符规约过程。
二、知识巩固
1、关于FIRSTVT & LASTVT
2、算符优先关系表的构造
(1)由定义直接构造
1、求出所有的FirstVT(~),LastVT(~);
2、再找到三种算符优先关系;
3、构造优先关系表填表。
(2)由关系图法构造算符优先关系表
1、求FirstVT集合:描点、连线、找元素;
2、求LastVT集合:描点、连线、找元素;
3、填表。
3、如何计算算符优先关系
1) ‘=’关系
-直接看产生式的右部,若出现了A →…ab…或A →…aBb,则a=b;
2)‘<’关系
-求出每个非终结符B的FIRSTVT(B),
-若A→…aB…,则 任意b∈FIRSTVT(B),a<b;
3)‘>’关系
-求出每个非终结符B的LASTVT(B),
-若A→…Bb…,则 任意a∈LASTVT(B),a>b
实例如下:
文法G[E]:
(0) E’→#E#
(1) E→E+T
(2) E→T
(3) T→T*F
(4) T→F
(5) F→P^F|P
(6) P→(E)
(7) P→i
4、算符优先分析算法
归约过程中,只考虑终结符之间的优先关系来确定句柄,而与非终结符无关
。这样去掉了单非终结符的归约,所以用算符优先分析法的规约过程与规范归约是不同的。
为解决在算符优先分析过程中如何寻找句柄,引进最左素短语
的概念。
5、关于句型的短语&素短语
cfg G 的句型的素短语
是一个短语,它至少包含一个终结符,且除自身外不再包含其他素短语。
处于句型最左边的素短语为最左素短语
。
6、算符优先文法(OPG)条件
一共三个条件:
算符文法(OG)两个条件:1、无S->...AB...;
2、无空字产生式;
+(额外一个条件)
3、任意两个终结符之间至多一种优先关系;
7、规范规约&算符优先规约 实例对比
Ending!
更多课程知识学习记录随后再来吧!
就酱,嘎啦!
注:
人生在勤,不索何获。