作业3—自顶向下分析方法
作业要求:
① 独立完成,谢绝抄袭
② 作业截止时间:2019-04-30(周二) 23:59:59
③ 提交方式两种自选:
a) 电子邮件发 [email protected] ,主题格式要求:“编译作业3_学号_姓名”,文件名也标为“作业3_学号_姓名”,以pdf或doc格式
b) 作业本
- 试消除下列文法G[E]中存在的左递归
E→ET+ | ET- | T
T→TF* | TF/ | F
F→(E) |i - 文法G[S](o, a , d, e, f, b是终结符号):
S→MH | a
H→LSo |ε
K→dML | ε
L→eHf
M→K | bLM
求非终结符号的FIRST集与FOLLOW集。
- 文法G[S]:
S→a | ^ | (T)
T→T,S | S
(1)改写文法(消除左递归或左公共因子)。
(2)判断改写后文法是否是LL(1)的,如果是,构造预测分析表。
(3)给出输入串(a, a)的分析过程。
- 文法G[A]:
A→aABe | a
B→Bb | d
(1)改写文法。
(2)判断改写后文法是否是LL(1)的,如果是,构造预测分析表。
- 考虑简化了的C语言声明语句的文法G[D],其他符号都是终结符号(注意:int,float,id均为终结符号)。
D→T V
T→int | float
V→ id, V | id
(1) 在该文法中提取左公共因子。
(2) 为改造后文法的非终结符号构造FIRST集和FOLLOW集
(3) 说明改造后的文法是LL(1)文法
(4) 为改造后的文法构造LL(1)分析表
(5) 给出输入串 float x, y所对应的LL(1)分析过程。