导航:首页 > 源码编译 > 编译原理ll1文法判断

编译原理ll1文法判断

发布时间:2025-01-23 02:26:06

‘壹’ 编译原理判断题

1. B 正确
2. A 错误,不一定存在
3. B 正确
4. B 正确
5. A 错误,是后缀式
6. A 错误,只是算符文法,不一定是算符优先文法
7. B 正确
8. B 正确
9. A 错误,语义动作是附加在产生式上的,不是附加在非终结符上
10. A 错误,有些文法不能改写为LL(1)文法
11. B 正确
12. B 正确
13. B 正确
14. B 正确
15. A 错误,SLR(1),LR(1)等都是冲突解决的办法
16. B 正确
17. B 正确
18. A 错误,不是编译程序工作效率高,而是生成的目标程序运行效率高
19. B 正确

‘贰’ 关于LL(1)文法

(1)first(E)={(,i},first(D)={+,-,ε},first(T)={(,i},first(S)={*,/,ε}
first(F)={(,i}
follow(E)={#,)},follow(D)={#,)},follow(T)={+,-,#,)} follow(S)={+,-,#,)} follow(F)={*,/,+,-,#,)}
(2)select(E->TD)=FIRST(TD)={(,i}
SELECT(E->+TD)={+}
SELECT(E->-TD)={-}
SELECT(E->ε)={#,)}
SELECT(T->FS)={(,i}
SELECT(S->*FS)={*}
SELECT(S->/FS)={/}
SELECT(S->ε)={+,-,#,)}
SELECT(F->(E))={(}
SELECT(F->i)={i}
预测分析表:
+ - * / ( ) i #
E ->+TD ->-TD ->TD ->ε ->TD ->ε
D
T ->FS ->FS
S ->ε ->ε ->*FS ->/FS ->(E) ->ε ->ε
F ->i

(3)i/i-i的分析过程:
步骤 输入串 剩余串 移进或规约
1 # i/i-i#
2 #i /i-i# E->TD
3 #DT ......
...
剩余的只要按照书上的步骤填就行了。

‘叁’ 什么叫首符集不相交 编译原理(判定是否为LL(1)文法)

就是各自的first集没有相同的元素

‘肆’ 编译原理的LL(1)文法是什么意思

第一个L表示从左向右读取要判断的字符(括号内数字表示每次读取的字符数),第二个L指最左推导。

‘伍’ 关于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)|ε

‘陆’ 编译原理怎么判断是否为slr文法

LL(1)就是向前只搜索1个符号,即与FIRST()匹配,如果FIRST为空则还要考虑FELLOW.
LR需要构造一张LR分析表,此表用于当面临输入字符时,将它移进,规约(即自下而上分析思想),接受还是出错.
LR(0)找出句柄前缀,构造分析表,然后根据输入符号进行规约.
SLR(1)使用LR(0)时若有冲突,不知道规约,移进,活移进哪一个,所以需要向前搜索,则只把有问题的地方向前搜索一次.
LR(1)1.在每个项目中增加搜索符.2.举个列子如有A->α.Bβ,则还需将B的规则也加入.
LALR(1)就是假如两个产生式集相同则将它们合并为一个,几合并同心集.

‘柒’ 编译原理题目关于判断LL(1)文法的

A 不是,因为含有左公共引子a
B 和D不是,因为含有左递归
C是,因为SELECT(S→aS) 与SELECT(S→b)的交集为空,符合LL(1)文法的定义。

‘捌’ 编译原理的LL(1)文法是什么意思

1.文法不含左递归,没有公共左因子
2.对于文法中的每个非终结符A的产生式的候选首符集两两不相交。
3.对于文法中的每个非终结符A,它存在某个候选首符集包括ε,则FIRST(A)∩FOLLOW(A)=空
满足以上条件的文法为LL(1)文法

‘玖’ 编译原理 对一个文法进行改写,然后判断改写后的文法是不是LL(1)文法,请问改写方式的不同是否影响结果

楼上的答案是错误的。对同一种文法,可能同时存在两种改写方法,其中一种使改写后的新文法为LL(1)文法,而另外一种使改写后的新文法不为LL(1)文法。

阅读全文

与编译原理ll1文法判断相关的资料

热点内容
外包程序员好进吗 浏览:380
云服务器服务模型架构 浏览:899
删文件夹什么指令 浏览:507
极速抖音已加密怎么办 浏览:601
matlab拉格朗日算法框图 浏览:428
华为公司计算机视觉算法顾问 浏览:252
夏老师讲的单片机 浏览:296
在编程中如何将图片放大 浏览:161
appstore怎么看是否付费 浏览:603
程序员和硕士 浏览:951
gcc编译消耗内存过多 浏览:281
昌邑网站制作源码 浏览:127
单片机的反向编译 浏览:463
subsample算法 浏览:899
苹果免费看书app哪个最好 浏览:885
c语言加密怎么弄 浏览:842
c语言编译的错误提示 浏览:767
验机苹果app哪个最好 浏览:666
光遇国际服安卓如何购买礼包 浏览:55
163app怎么下载 浏览:247