当前位置:首页 » 编程软件 » 编译原理提取左公共因子例题

编译原理提取左公共因子例题

发布时间: 2023-05-14 19:50:36

编译原理 设文法G[S] 求答案!

  1. ·消除左递归 S→aAS'|∧aAS'
    S'→VaAS'|ε

    对A的产生式提取左因子 A→∧aA' A'→A|ε

  2. · 非终结符合 First Follow

S a∧ #

S’ V ε #

A ∧ #

A‘ ∧ #

Select(S→aAS')=a

Select(S→∧aAS')=∧

Select(S'→VaAS')=V

Select(S'→ε)=#

Select(A→∧aA')=∧

Select(A'→A)=∧

Select(A'→ε)=#

符合LL(1)文法

a ∧ V #

S S→aAS' S→∧aAS'

S' S'→VaAS' S'→ε

A A→∧aA'

A' A'→A A'→ε

⑵ 消除左递归及提取左公因子

如果一个文法中有一个非终禅扮结符号A使得对某个串α存在一个推导A=》Aα,那么这个文法就是左递归的。递归分为立即左递归和非立即左递归。立即左递归单步即可看出来,非立即左递归
举个例子:

消除立即左递归只需要遵循以下规律进行转换就ok。

立即左递归:

非立即左递归:

和数学中的公因子含义相同,就是公共的因子,而左公因子就是最左边的公因子。

例如:

可以看出前n项拥有一个共同的左公因念信子:a,所以仔袭轮可以把他提取出来。

so easy啦

S → aB1|aB2|aB3|aB4|...|aBn|y
可以看出前n项拥有一个共同的左公因子:a,所以可以把他提取出来。

提取规则
so easy啦

S → aS'|y
S'→ B1|B2|B3|...|Bn

⑶ Ab-a=76,A等于多少b等于多少

两个未知数一个方程,有无数解,信升但正整数解是有限的。左边提取公因数a
a(b-1)=76
76=1×76=2×38=4×19
所以有6组盯宏正整数解
a=1,2,4,19,38,76
对应的b=77,39,20,5,3,2
一般把问题化为乘法来做。也可以用一个字母表示另外一个,如a=76/(b-1),b-1是76的因数。结果一样凯坦册的。

⑷ AB-A=76 A= B=

一个有两衫启凯个未知数的方程有无数个解,但正整数或唤解是有限的。左提取公因子AA(B-1)=7676=1×76=2×38=4×因此,存在六组正整数解a=1,2,4,19,38,76,对应于B=77,39,20,5,3,2。通常,该问题通过乘法解决。旁亏一个字母也可以用来表示另一个字母,例如,a=76/(B-1),B-1是76的因子。结果是相同的。

⑸ 编译原理,改造文法使之变为LL(1)文法,怎么提取最左公因式 如题:

S->aAb
A->edA|ε

这样提取,

⑹ 设文法g(s) 判断该文法是否为ll1文法

(1)
G'(S)
S->(L)|aT
T->+S|e
L->L,S|S
提取了 公共左因子
(2)
是LL(1)文法

⑺ 对下面文法先消除左递归,并提取左公共因子,再判断其是否是LL(1)文法。 S->Aa|b A->SB B->ab

消除左递归
S->bS'
S'->BaS'|空
B->ab
提取公共左因子笑晌
没有可提
文法不含左递归
每个非终结符只有一个产生式 候选首符集唯一
FOLLOW(S')=# 与其碰轿锋首符集帆或相交为空
是LL(1)文法

⑻ 编译原理回溯

消除回溯:提取左公因子a,(注:用e代表一补西农符号,就是反三的那个符号,在电脑上不知道怎么打那个符号)
S→aS'|(L)
S'→S|e
消除左递归:
L→SL'
L'→,SL'|e (注意S前面有一个符号“,”)

热点内容
我与预算法 发布:2025-07-13 11:20:28 浏览:426
线谱算法 发布:2025-07-13 11:17:15 浏览:838
怎么把文件上传百度云 发布:2025-07-13 11:09:18 浏览:556
光遇安卓玩家如何加苹果玩家 发布:2025-07-13 11:08:21 浏览:477
安卓哪里下载破解游戏 发布:2025-07-13 11:02:30 浏览:324
三菱如何查找未编译的程序 发布:2025-07-13 11:02:29 浏览:389
2013全国计算机二级c语言真题 发布:2025-07-13 10:58:17 浏览:174
python读取txt 发布:2025-07-13 10:56:50 浏览:641
c语言ftp服务器 发布:2025-07-13 10:56:36 浏览:413
mdb压缩 发布:2025-07-13 10:56:02 浏览:425