找到 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 → aAd A → bc | b 为字符串 abd 创建解析树。此外,当选择错误的备选方案时,显示需要回溯时的解析树。解决方案字符串 abd 的推导将是:S ⇒ aAd ⇒…… 阅读更多

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

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

4K+ 次浏览

优先级表中任何两个运算符或符号之间的优先级关系可以转换为两个优先级函数 f & g,它们将终结符映射到整数。如果 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 代表运算符优先级文法。具有后一种属性的文法称为运算符优先级文法。它是一个 ε - 自由运算符文法,其中优先级关系是不相交的,即,如果存在 a . > b,则 b . > a 将不存在。示例 1 - 验证以下文法是否为运算符文法。E → EAE | (E) | id A → + | - | * 解决方案否,它不是运算符文法,因为它不满足运算符文法的属性 2。因为它在产生式 E → EAE 的右部包含两个相邻的非终结符。我们可以将其转换为…… 阅读更多

什么是句柄?

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 → mAcBeD 通过将 mAcBeD 与 αaβbγ 进行比较 a = mA,a = c,β = B,b = e,γ = d Aβbγ mAcBeD 因此,将 a 与 c 和 b 与 e 进行比较,我们得到 c =. e。我们还可以为…… 阅读更多

广告