编译原理3

作业3—自顶向下分析方法
作业要求:
① 独立完成,谢绝抄袭
② 作业截止时间:2019-04-30(周二) 23:59:59
③ 提交方式两种自选:

a) 电子邮件发 [email protected] ,主题格式要求:“编译作业3_学号_姓名”,文件名也标为“作业3_学号_姓名”,以pdf或doc格式

b) 作业本

  1. 试消除下列文法G[E]中存在的左递归
    E→ET+ | ET- | T
    T→TF* | TF/ | F
    F→(E) |i
  2. 文法G[S](o, a , d, e, f, b是终结符号):
    S→MH | a
    H→LSo |ε
    K→dML | ε
    L→eHf
    M→K | bLM
    求非终结符号的FIRST集与FOLLOW集。
  3. 文法G[S]:
    S→a | ^ | (T)
    T→T,S | S
    (1)改写文法(消除左递归或左公共因子)。
    (2)判断改写后文法是否是LL(1)的,如果是,构造预测分析表。
    (3)给出输入串(a, a)的分析过程。

  4. 文法G[A]:
    A→aABe | a
    B→Bb | d
    (1)改写文法。
    (2)判断改写后文法是否是LL(1)的,如果是,构造预测分析表。
  5. 考虑简化了的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)分析过程。

猜你喜欢

转载自www.cnblogs.com/nikozhang/p/10867947.html