问:帮忙改成LL(1)文法,谢谢
- 答:S-->ASCS
S-->空
A-->aB
B-->aB
C-->DcD
D-->d
好象是这样的~~呵呵‘ - 答:哇,编译原理啊,考试前我还会,现在忘了
问:关于LL(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)文法,怎么提取最左公因式 如题:
- 答:S->aAb
A->edA|ε
这样提取, - 答:找下第四章,有类似题。有答案