找到 138 篇文章 适用于编译器设计

什么是预测分析器?

Ginni
更新于 2021年11月1日 11:25:36

16K+ 浏览量

预测分析器是另一种实现自上而下分析而不回溯的技术方法。预测分析器是一种执行递归下降分析的有效技术,特别是管理激活记录的栈。预测分析器具有以下组件-输入缓冲区-输入缓冲区包含要分析的字符串,后跟一个结束标记 $ 以表示字符串的结束。这里 a、+、b 是终结符。栈-它包含语法符号的组合,底部为 $。在分析开始时,栈包含语法的开始符号... 阅读更多

什么是递归下降分析器?

Ginni
更新于 2021年10月30日 13:52:17

34K+ 浏览量

递归下降分析器使用自上而下分析而不回溯的技术。它可以定义为使用各种递归过程来处理输入字符串而无需回溯的分析器。它可以使用递归语言简单地执行。产生式右部字符串的第一个符号将唯一地确定要选择的正确备选方案。递归下降分析的主要方法是将每个非终结符与一个过程相关联。每个过程的目标是读取可以由相应的非终结符产生的输入字符序列,并返回指向根的指针... 阅读更多

什么是编译器设计中的不回溯自上而下分析?

Ginni
更新于 2021年10月30日 13:39:01

1K+ 浏览量

有不回溯的自上而下分析两种类型,如下所示-递归下降分析器预测分析器递归下降分析器实现一组递归过程以在不回溯的情况下处理输入的自上而下分析器称为递归下降分析器,分析称为递归下降分析。如果在有效执行过程调用的语言中编写,则递归过程易于编写且效率足够高。语法中每个非终结符都有一个过程。它可以考虑一个全局变量前瞻,影响当前的输入标记,而过程匹配(预期标记)是识别... 阅读更多

什么是编译器设计中的非直接左递归?

Ginni
更新于 2021年10月30日 13:30:24

1K+ 浏览量

如果语法 G(V, T, P, S) 具有以下形式的产生式,则它是左递归的。A → A α |β。上述语法是左递归的,因为产生式的左侧出现在产生式右侧的第一个位置。可以通过用以下两个产生式替换一对产生式来消除左递归A → βA′A → αA′|ϵ左递归的一般形式为A → Aα1|Aα2| … . |Aαm|β1|β2| … . . βn可以用以下形式替换A → β1A′|β2A′| … . . | … . . |βnA′A → α1A′|α2A′| … . . |αmA′|ε在下面的语法中,它没有... 阅读更多

什么是左递归以及如何消除它?

Ginni
更新于 2021年10月30日 13:07:24

118K+ 浏览量

如果语法 G(V, T, P, S) 具有以下形式的产生式,则它是左递归的。A → A α |β。上述语法是左递归的,因为产生式的左侧出现在产生式右侧的第一个位置。可以通过用以下两个产生式替换一对产生式来消除左递归A → βA′A → αA′|ϵ消除左递归左递归可以通过引入新的非终结符 A 来消除,使得。这种类型的递归也称为直接左递归。在左递归语法中,A 的扩展将在每一步生成 Aα、Aαα、Aααα,导致它... 阅读更多

什么是编译器设计中的回溯自上而下分析?

Ginni
更新于 2021年10月30日 12:45:01

8K+ 浏览量

在回溯自上而下分析中,分析器将尝试多个规则或产生式以识别输入字符串的匹配项,方法是在推导的每一步都回溯。因此,如果应用的产生式没有给出所需的输入字符串,或者它与所需的字符串不匹配,则可以撤消该移位。示例 1-考虑语法S → a A dA → b c | b为字符串 abd 创建语法树。此外,当选择错误的备选方案时,显示需要回溯时的语法树。解决方案字符串 abd 的推导将为-S ⇒ a A d ⇒ ... 阅读更多

什么是编译器设计中的优先级函数?

Ginni
更新于 2021年10月30日 12:34:29

4K+ 浏览量

优先级表中任意两个运算符或符号之间的优先级关系可以转换为两个优先级函数 f 和 g,它们将终结符映射到整数。如果 a g (b)这里 a、b 表示终结符。f (a) 和 g (b) 表示具有整数值的优先级函数。优先级函数的计算对于每个终结符 a,创建符号 fa 和 ga。为每个符号创建一个节点。                如果 a =. b,则 fa 和 gb 在同一组或节点中。                如果 a =. b 和 c =. b,... 阅读更多

什么是 OPG?

Ginni
更新于 2021年10月30日 12:09:44

417 浏览量

OPG 代表运算符优先级语法。具有后一种属性的语法称为运算符优先级语法。它是 ε-free 运算符语法,其中优先级关系是不相交的,即,如果存在 a . > b,则不存在 b .> a。示例 1-验证以下语法是否是运算符语法。E → E A E |(E)|idA → +| − | *解决方案否,它不是运算符语法,因为它不满足运算符语法的属性 2。因为它在产生式 E → E A E 的右侧包含两个相邻的非终结符。我们可以将其转换为... 阅读更多

什么是句柄?

Ginni
更新于 2021年10月29日 12:54:09

9K+ 浏览量

句柄是连接语法中产生式规则右部的子字符串,并且将其缩减为该语法规则左侧的非终结符是右最推导的反向步骤。在每一步查找句柄句柄可以通过以下过程找到-可以从左到右扫描输入字符串,直到遇到第一个 .>。可以向后扫描,直到

什么是运算符语法中的优先级关系?

Ginni
更新于 2021年10月29日 11:26:55

472 浏览量

对于运算符语法中的终结符 a 和 b,我们可以有以下优先级关系-a =. b(等优先级)-如果产生式的右侧具有 α a β b γ 的形式,其中 β 可以是 ε 或单个非终结符,则 a =. b。这里,α 和 γ 可以是任何字符串。示例-在语法中,S → m A c B e d比较 mAcBed 与 αaβbγ,α = mA,a = c,β = B,b = e,γ = dΑAβbγmACBed因此,比较 a 与 c 和 b 与 e,我们得到 c =.e。我们还可以为... 阅读更多

广告