编译原理作业集 第五章 自下而上语法分析
13. 文法
S→(L) | a L→L, S | S (1) 计算该文法的Firstvt和Lastvt;
(2) 构造算符优先关系表,并说明该文法是否是OPG文法; (3) 计算优先函数;
(4) 给出串(a, (a, a))的算符优先分析过程。
句子(a, (a, a))的分析过程 栈 输入 动作 $ (a,(a,a))$ $<( shift $( a,(a,a))$ (, reduce $(S ,(a,a))$ (<, shift $(S, (a,a))$ ,<( shift $(S,( a,a))$ (, reduce $(S,(S ,a))$ (<, shift $(S,(S, a))$ ,) reduce $(S,(S,S ))$ ,>) reduce $(S,(L ))$ (=) shift $(S,(L) )$ )<) reduce $(S,S )$ ,>) reduce $(L )$ (=) shift $(L) $ )>$ reduce $S $ accept 西安理工大学计算机科学与工程学院 张发存编写 6/24/2019 6:18:37 AM
- 21 -
编译原理作业集 第五章 自下而上语法分析
14. 设已给文法G1[S]: S→Aa|bAc|dc|bda A→d
构造其LALR(1)文法,并分析输入串bdc是否文法的句子;
15. 下面是一个描述?={a b}上的正规式的LALR文法(实际上也是SLR文法),只不过用‘+’代替‘|’,用∧代替?(空字)。 E→E+T | T T→TF | F
F→F* | (E) | a | b | ∧
构造这个文法的LALR项目集和分析表。
西安理工大学计算机科学与工程学院 张发存编写 6/24/2019 6:18:37 AM - 22 -