Print

把下面文法改写为LL(1)

问:帮忙改成LL(1)文法,谢谢
  1. 答:S-->ASCS
    S-->空
    A-->aB
    B-->aB
    C-->DcD
    D-->d
    好象是这样的~~呵呵‘
  2. 答:哇,编译原理啊,考试前我还会,现在忘了
问:关于LL(1)文法的编译原理题目?
  1. 答:判断是不是LL(1),首先看候选式的首字符有没有相同的,第二判断首字符迭代进去是否会构成左递归。
    如果首字符不相同,也没用左递归就说明此文法是LL(1)
    M→MaH|H
    H→(M)|b(M)|b
    第一个产生式中存在左递归:M->MaH
    第二个产生式中存在首字符相同:H->b(M) ,
    H->b
    怎么改呢?
    对第一个产生式,消除左递归就是要变成右递归,把右边剩下的符号提到前面:
    M->aHM'
    M'->aHM'
    对第二个产生式,提出公共因子
    H->b( (M)|ε)
    =>
    H->bH'
    H'->(M)|ε
问:编译原理,改造文法使之变为LL(1)文法,怎么提取最左公因式 如题:
  1. 答:S->aAb
    A->edA|ε
    这样提取,
  2. 答:找下第四章,有类似题。有答案

本文来源: https://www.miaochuli.com/article/5c77ad8896814c2111909922.html