在回溯自上而下分析中,分析器将尝试多个规则或产生式以识别输入字符串的匹配项,方法是在推导的每一步都回溯。因此,如果应用的产生式没有给出所需的输入字符串,或者它与所需的字符串不匹配,则可以撤消该移位。示例 1-考虑语法S → a A dA → b c | b为字符串 abd 创建语法树。此外,当选择错误的备选方案时,显示需要回溯时的语法树。解决方案字符串 abd 的推导将为-S ⇒ a A d ⇒ ... 阅读更多
优先级表中任意两个运算符或符号之间的优先级关系可以转换为两个优先级函数 f 和 g,它们将终结符映射到整数。如果 a g (b)这里 a、b 表示终结符。f (a) 和 g (b) 表示具有整数值的优先级函数。优先级函数的计算对于每个终结符 a,创建符号 fa 和 ga。为每个符号创建一个节点。 如果 a =. b,则 fa 和 gb 在同一组或节点中。 如果 a =. b 和 c =. b,... 阅读更多
OPG 代表运算符优先级语法。具有后一种属性的语法称为运算符优先级语法。它是 ε-free 运算符语法,其中优先级关系是不相交的,即,如果存在 a . > b,则不存在 b .> a。示例 1-验证以下语法是否是运算符语法。E → E A E |(E)|idA → +| − | *解决方案否,它不是运算符语法,因为它不满足运算符语法的属性 2。因为它在产生式 E → E A E 的右侧包含两个相邻的非终结符。我们可以将其转换为... 阅读更多
对于运算符语法中的终结符 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。我们还可以为... 阅读更多