📜  门| GATE-CS-2005 |第86章

📅  最后修改于: 2021-06-28 18:32:18             🧑  作者: Mango

考虑以下表达语法。用于表达计算的语义规则在每个语法产生的旁边都有说明。

E → number      E.val = number. val
    | E '+' E      E(1).val = E(2).val + E(3).val
    | E '×' E     E(1).val = E(2).val × E(3).val 

假定解决了此问题的(a)部分中的冲突,并根据给定的语法生成了LALR(1)解析器,用于解析算术表达式。考虑表达式3×2 +1。生成的解析器实现什么优先级和关联性?
(A)平等的优先权和左联想性;表达式的计算结果为7
(B)平等的优先权和权利结合性;表达式的计算结果为9
(C) ‘×’的优先级高于’+’的优先级,并且两个运算符都保持关联;表达式的计算结果为7
(D) “ +”的优先级高于“×”的优先级,并且两个运算符都保持关联;表达式的计算结果为9答案: (B)
说明:答案是B,因为产品属于同一个非终端产品,并且由于YACC通过递减归结来解决,所以关联性将是正确的关联性。这个问题的测验