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

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

发布时间: 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-09-18 05:52:09 浏览:652
移动版我的世界服务器 发布:2025-09-18 05:38:49 浏览:958
使用jsp脚本输出九九乘法表 发布:2025-09-18 05:22:11 浏览:664
出行解压 发布:2025-09-18 05:20:54 浏览:574
安卓手机画线怎么用 发布:2025-09-18 05:16:43 浏览:697
解压吃蔬菜 发布:2025-09-18 05:10:04 浏览:818
php判断数组个数 发布:2025-09-18 04:54:02 浏览:665
linuxmd5c 发布:2025-09-18 04:47:04 浏览:345
数据结构编译器哪个好 发布:2025-09-18 04:33:52 浏览:438
ad转换c语言 发布:2025-09-18 04:21:21 浏览:755