作業3—自頂向下分析方法
作業要求:
① 獨立完成,謝絕抄襲
② 作業截止時間:2019-04-30(周二) 23:59:59
③ 提交方式兩種自選:
a) 電子郵件發 huangxx@hdu.edu.cn ,主題格式要求:“編譯作業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)分析過程。