2016 - 2024

感恩一路有你

first和follow求法例题 【编译原理】自顶向下LL(1)分析中,消除左递归和提取左因子的目的是什么?

浏览量:1512 时间:2021-03-10 14:05:41 作者:admin

【编译原理】自顶向下LL(1)分析中,消除左递归和提取左因子的目的是什么?

一般来说,LL(1)是通过函数递归实现的

]例如,语法:a-> a | a

代码实现是:[function a()

{

a()

match()

term(a)]}

!]这样你就可以看到死循环了…

消除语法的左递归后

a-> AA“

a”->AA“

]这个问题可以避免

公因子是像你在楼上说的那样提出的,避免程序回溯,消除歧义

[Q→RB[b(2)

R→SA[a(3)

!]R→SA[a(3)

把第一个公式带入第三个公式,然后第二个公式也被引入,这样我们就可以得到

R->rbca BCA BCA CA | a为了消除左递归,我们可以得到

R->(BCA B | B | B[B

]R->(BCA BCA | B | a)R“

]R”->bcar“”->bcar“124124124。A->aa

2。A->ba

B->ab(A和B属于非终端字符,A和B属于终端字符)

一般来说,左递归意味着案例1中“>”的两边包含相同的非终端字符;

案例2,a->ba中“>”后的B和B->ab中“>”前的B是同一个非终结符

这两种情况称为左递归。

first和follow求法例题 nfa转化为dfa例题详解 已知文法g[s]为: S→a

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。